Fonction vsprintf() de PHP
Exemple
Écrire une chaîne formatée dans une variable :
<?php $number = 9; $str = "Beijing"; $txt = vsprintf("Il y a 쥕lions de vélos dans %s.", array($number, $str)); echo $txt; ?>
Définition et utilisation
La fonction vsprintf() écrit une chaîne formatée dans une variable.
Différent de sprintf(), les paramètres de vsprintf() sont situés dans un tableau. Les éléments du tableau sont insérés à l'intérieur de la chaîne principale à l'endroit du symbole pourcentage (%) du principal. Cette fonction est exécutée progressivement. À l'endroit du premier %, l'élément du premier tableau est inséré, à l'endroit du second %, l'élément du second tableau est inséré, et ainsi de suite.
Remarque :Si il y a plus de % arg Si vous avez des paramètres, vous devez utiliser desholders. Lesholders sont insérés après le symbole % et sont composés de nombres et de "\$". Voir l'exemple 2.
Astuce :Fonctions associées :
Syntaxe
vsprintf(format,argarray)
Paramètres | Description |
---|---|
format |
Obligatoire. Définir la chaîne et la manière dont les variables y sont formatées. Valeurs de format possibles :
Valeurs de format supplémentaires. Obligatoire. Placé entre % et la lettre (par exemple %.2f) :
Remarque :Si vous utilisez plusieurs valeurs de format ci-dessus, elles doivent être utilisées dans l'ordre indiqué ci-dessus et ne doivent pas être mélangées. |
argarray | Obligatoire. Un tableau avec des paramètres, ces paramètres seront insérés format Au niveau du symbole % dans la chaîne. |
Détails techniques
Valeur de retour : | Retourne les valeurs de tableau sous forme de chaîne formatée. |
Version PHP : | 4.1.0+ |
Plus d'exemples
Exemple 1
Utilisez la valeur de format %f :
<?php $num1 = 123; $num2 = 456; $txt = vsprintf("%f%f",array($num1,$num2)); echo $txt; ?>
Exemple 2
Utilisation des placeholders :
<?php $number = 123; $txt = vsprintf("Avec deux décimales:%1\$.2f<br>Sans décimales:%1\$u",array($number)); echo $txt; ?>
Exemple 3
Utilisation de sprintf() pour démontrer tous les formats possibles :
<?php $num1 = 123456789; $num2 = -123456789; $char = 50; // Le caractère ASCII 50 est 2 // Commentaire : La valeur de format "%%" renvoie le pourcentage echo sprintf("%%b = %b",$num1)."<br>"; // Nombre binaire echo sprintf("%%c = %c",$char)."<br>"; // Caractère ASCII echo sprintf("%%d = %d",$num1)."<br>"; // Nombre décimal signé echo sprintf("%%d = %d",$num2)."<br>"; // Nombre décimal signé echo sprintf("%%e = %e",$num1)."<br>"; // Notation scientifique en minuscule echo sprintf("%%E = %E",$num1)."<br>"; // Notation scientifique en majuscule echo sprintf("%鑾u",$num1)."<br>"; // Nombre décimal sans signe (positif) echo sprintf("%鑾u",$num2)."<br>"; // Nombre décimal sans signe (negatif) echo sprintf("%%f = %f",$num1)."<br>"; // Nombre flottant (en fonction de la configuration locale) echo sprintf("%%F = %F",$num1)."<br>"; // Nombre flottant (ignorant la configuration locale) echo sprintf("%%g = %g",$num1)."<br>"; // Plus court que %e et %f echo sprintf("%%G = %G",$num1)."<br>"; // Plus court que %E et %f echo sprintf("%%o = %o",$num1)."<br>"; // Nombre octal echo sprintf("%%s = %s",$num1)."<br>"; // Chaine echo sprintf("%%x = %x",$num1)."<br>"; // Nombre hexadécimal (minuscules) echo sprintf("%%X = %X",$num1)."<br>"; // Nombre hexadécimal (majuscules) echo sprintf("%%+d = %+d",$num1)."<br>"; // Indicateur de signe (positif) echo sprintf("%%+d = %+d",$num2)."<br>"; // Indicateur de signe (negatif) ?>
Exemple 4
Démonstration de l'indicateur de chaîne :
<?php $str1 = "Hello"; $str2 = "Hello world!"; echo vsprintf("[%s]",array($str1))."<br>"; echo vsprintf("[%8s]",array($str1))."<br>"; echo vsprintf("[%-8s]",array($str1))."<br>"; echo vsprintf("[%08s]",array($str1))."<br>"; echo vsprintf("[%'*8s]",array($str1))."<br>"; echo vsprintf("[%8.8s]",array($str2))."<br>"; ?>