Écrivez du texte dans un fichier texte nommé "test.txt" :
<?php$number = 9;$str = "Pékin";$file = fopen("test.txt","w");echo vfprintf($file,"Il y a %u millions de vélos dans %s.", tableau($nombre,$str));?>Le code ci-dessus affichera :
40Le texte suivant sera écrit dans le fichier « test.txt » :
Il y a 9 millions de vélos à Pékin.La fonction vfprintf() écrit une chaîne formatée dans le flux de sortie spécifié (par exemple : fichier ou base de données).
Contrairement à fprintf(), les paramètres de vfprintf() 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 : fprintf(), printf(), sprintf(), vprintf() et vsprintf()
vfprintf ( flux, format, argarray )
paramètre | décrire |
---|---|
flux | Requis. Spécifie où les chaînes sont écrites/sorties. |
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 en cours d'écriture. |
---|---|
Version PHP : | 5+ |
Écrivez du texte dans un fichier :
<?php$num1 = 123;$num2 = 456;$file = fopen("test.txt","w");vfprintf($file,"%f%f",array($num1,$num2)) ;?>Le texte suivant sera écrit dans le fichier « test.txt » :
123.000000456.000000Utilisez des espaces réservés :
<?php$number = 123;$file = fopen("test.txt","w");vfprintf($file,"Avec 2 décimales : %1$.2fnSans décimales : %1$u",array( $numéro));?>Le texte suivant sera écrit dans le fichier « test.txt » :
Avec 2 décimales : 123,00Sans décimales : 123Utilisez 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) ?>