Chaîne formatée en sortie :
<?php$number = 9;$str = "Pékin";vprintf("Il y a %u millions de vélos dans %s.",array($number,$str));?>La fonction vprintf() génère une chaîne formatée.
Contrairement à printf(), les arguments de vprintf() sont dans un tableau. Les éléments du tableau seront insérés dans la chaîne principale au signe de pourcentage (%). Cette fonction est exécutée étape par étape. Au premier signe %, le premier élément du tableau est inséré, au deuxième signe %, le deuxième élément du tableau est inséré, et ainsi de suite.
Remarque : S'il y a plus de symboles % que de paramètres arg, vous devez utiliser des espaces réservés. L'espace réservé est inséré après le symbole % et se compose d'un nombre et de "$". Voir l'exemple 2.
Astuce : Fonctions associées : sprintf(), printf(), vsprintf(), fprintf() et vfprintf()
vprintf( format,argarray )
paramètre | décrire |
---|---|
format | Requis. Spécifie une chaîne et comment formater les variables qu'elle contient. Valeurs de format possibles : %% - renvoie un signe de pourcentage % %b - nombre binaire %c - le caractère correspondant à la valeur ASCII %d - Nombre décimal avec signe (négatif, 0, positif) %e - Utiliser la notation scientifique en minuscules (par exemple 1.2e+2) %E - Utiliser la notation scientifique en majuscules (par exemple 1.2E+2) %u - Nombre décimal sans signe (supérieur ou égal à 0) %f - nombre à virgule flottante (paramètre local) %F - nombre à virgule flottante (paramètre non natif) %g - la version plus courte de %e et %f %G - %E et %f plus courts %o - nombre octal %s - chaîne %x - Nombre hexadécimal (lettres minuscules) %X - nombre hexadécimal (lettres majuscules) Valeurs de format supplémentaires. Doit être placé entre % et une lettre (par exemple %.2f) : + (Ajoutez + ou - devant un nombre pour définir le signe du nombre. Par défaut, seuls les nombres négatifs sont marqués, et les nombres positifs ne sont pas marqués) ' (Spécifie ce qu'il faut utiliser comme remplissage, par défaut des espaces. Il doit être utilisé avec un spécificateur de largeur. Par exemple : %'x20s (utilisez "x" comme remplissage)) - (valeur variable de réglage gauche) [0-9] (spécifie la largeur minimale de la valeur de la variable) .[0-9] (spécifie le nombre de décimales ou la longueur maximale de la chaîne) Remarque : Si plusieurs valeurs de format ci-dessus sont utilisées, elles doivent être utilisées dans l'ordre ci-dessus et ne peuvent pas être perturbées. |
Argarray | Requis. Un tableau avec des paramètres qui seront insérés dans la chaîne de format aux symboles %. |
Valeur de retour : | Renvoie la longueur de la chaîne de sortie. |
---|---|
Version PHP : | 4.1.0+ |
Utilisez la valeur de format %f :
<?php$num1 = 123;$num2 = 456;vprintf("%f%f",array($num1,$num2));?>Utilisez des espaces réservés :
<?php$number = 123;vprintf("Avec 2 décimales : %1$.2f<br>Sans décimales : %1$u",array($number));?>Utilisez printf() pour démontrer toutes les valeurs de format possibles :
<?php$num1 = 123456789;$num2 = -123456789;$char = 50; // Le caractère ASCII 50 est 2// Remarque : La valeur de format "%%" renvoie un pourcentage signprintf("%%b = %b <br>",$num1); // Numberprintf("%%c = %c <br>",$char); // L'ASCII Characterprintf("%%d = %d <br>",$num1); // Nombre décimal signéprintf("%%d = %d <br>",$num2); = %e <br>",$num1); // Notation scientifique (minuscules)printf("%%E = %E <br>",$num1); // Notation scientifique (majuscule)printf("%%u = %u <br>",$num1); // Nombre décimal non signé (positif)printf("%%u = %u <br>",$num2); nombre décimal (négatif)printf("%%f = %f <br>",$num1); // Nombre à virgule flottante (compatible avec les paramètres locaux)printf("%%F = %F) <br>",$num1); // Nombre à virgule flottante (non compatible avec les paramètres locaux)printf("%%g = %g <br>",$num1); // Plus court de %e et %fprintf(" %%G = %G <br>",$num1); // Plus court de %E et %fprintf("%%o = %o <br>",$num1); // Nombre octalprintf("%%s = %s <br>",$num1); // Stringprintf("%%x = %x <br>",$num1); // Nombre hexadécimal (minuscules)printf("%%X = %X <br >",$num1); // Nombre hexadécimal (majuscule)printf("%%+d = %+d <br>",$num1); // Spécificateur de signe (positif)printf("%%+d = %+d <br>",$num2); // Spécificateur de signe (négatif) ?>Démonstration des spécificateurs de chaînes :
<?php$str1 = "Bonjour";$str2 = "Bonjour monde!";vprintf("[%s]<br>",array($str1));vprintf("[%8s]<br>",array($str1));vprintf("[%-8s] <br>",array($str1));vprintf("[%08s]<br>",array($str1)); vprintf("[%'*8s]<br>",array($str1));vprintf("[%8.8s]<br>",array($str2) ?>