Fonction fprintf() en PHP

Exemple

Écrire le texte dans le fichier texte nommé "test.txt" :

<?php
$number = 9;
$str = "Beijing";
$file = fopen("test.txt", "w");
echo fprintf($file,"Il y a 쥕lions de vélos dans %s.",$number,$str);
?>

Sortie du code ci-dessus :

40

Le texte suivant sera écrit dans le fichier "test.txt" :

Il y a 9 millions de vélos à Pékin.

Définition et utilisation

La fonction fprintf() écrit la chaîne de caractères formatée dans le flux de sortie spécifié (par exemple : fichier ou base de données).

arg1,arg2,arg++ Les paramètres seront insérés dans le symbole % (pourcentage) de la chaîne principale. La fonction est exécutée progressivement. À la première occurrence du symbole %, insérez arg1, insérez arg2, etc.

Comment:Si le symbole % est plus de arg Si vous avez plusieurs paramètres, vous devez utiliser desholders. Lesholders sont insérés après le symbole %, composés de chiffres et de "\$". Voir l'exemple 2.

Fonctions associées :

Syntaxe

fprintf(stream,format,arg1,arg2,arg++)
Paramètres Description
stream Obligatoire. Définit où écrire/sortir la chaîne de caractères.
format

Obligatoire. Définit la chaîne de caractères et la manière dont les variables sont formatées.

Valeurs de format possibles :

  • %% - Retourne un pourcentage %
  • %b - Nombre binaire
  • %c - Caractère correspondant à la valeur ASCII
  • %d - Nombre décimal avec signe (numéro négatif, 0, numéro positif)
  • %e - Utilise le format de nombre scientifique en minuscules (par exemple 1.2e+2)
  • %E - Utilise le format de nombre scientifique en majuscules (par exemple 1.2E+2)
  • 蒧ombre décimal sans signe (supérieur ou égal à 0)
  • %f - Nombre en virgule flottante (configuré localement)
  • %F - Nombre en virgule flottante (non configuré localement)
  • %g - Plus court que %e et %f
  • %G - Plus court que %E et %f
  • %o - Nombre octal
  • %s - Chaîne de caractères
  • %x - Nombre hexadécimal (lettres minuscules)
  • %X - Nombre hexadécimal (lettres majuscules)

La valeur de format ajoutée. Doit être placée entre % et une lettre (par exemple %.2f) :

  • + (prefixes the number with + or - to define the sign of the number)
    By default, only negative numbers are marked, not positive numbers
  • " (specifies what to use as padding, default is space. It must be used with the width specifier)
    For example: %%'x20s (using "x" as the padding)
  • - (left-justifies the variable value)
  • .[0-9] (specifies the minimum width of the variable value)
  • .[0-9] (specifies the number of decimal places or maximum string length)

Comment:If multiple additional format values are used, they must be used in the order specified above.

arg1 Required. Specifies the insertion into format The parameter at the first %% symbol in the string.
arg2 Optional. Specifies the insertion into format The parameter at the second %% symbol in the string.
arg++ Optional. Specifies the insertion into format The parameters at the third, fourth, etc. %% symbols in the string.

Technical details

Return value: Returns the length of the written string.
PHP version: 5+

More examples

Example 1

Write text to the file:

<?php
$number = 123;
$file = fopen("test.txt", "w");
fprintf($file, "%%f", $number);
?>

The following text will be written to the file "test.txt":

123.000000

Example 2

Use placeholders:

<?php
$number = 123;
$file = fopen("test.txt", "w");
fprintf($file, "Two decimal places: %%f", $number);
\nNo decimal: %1$u
?>

The following text will be written to the file "test.txt":

Two decimal places: 123.00
No decimal: 123

Example 3

Use printf() to demonstrate all possible format values:

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII character 50 is 2
// Comment: The format value "%%" returns a percent sign
printf("%%b = %%b <br>", $num1); // Binary number
printf("%%c = %%c <br>", $char); // ASCII character
printf("%%d = %%d <br>", $num1); // Signed decimal number
printf("%%d = %%d <br>", $num2); // Signed decimal number
printf("%%e = %%e <br>", $num1); // Exponential notation (lowercase)
printf("%%E = %%E <br>", $num1); // Exponential notation (uppercase)
printf("%鑾u <br>",$num1); // Nombre décimal sans signe (positif)
printf("%鑾u <br>",$num2); // Nombre décimal sans signe (négatif)
printf("%%f = %f <br>",$num1); // Nombre en virgule flottante (en fonction de la configuration locale)
printf("%%F = %F <br>",$num1); // Nombre en virgule flottante (ignorant la configuration locale)
printf("%%g = %g <br>",$num1); // Plus court que %e et %f
printf("%%G = %G <br>",$num1); // Plus court que %E et %f
printf("%%o = %o <br>",$num1); // Nombre octal
printf("%%s = %s <br>",$num1); // Chaîne de caractères
printf("%%x = %x <br>",$num1); // Nombre hexadécimal (minuscules)
printf("%%X = %X <br>",$num1); // Nombre hexadécimal (majuscules)
printf("%%+d = %+d <br>",$num1); // Symbole de signe (positif)
printf("%%+d = %+d <br>",$num2); // Explication du symbole (négatif)
?>

Exemple de fonctionnement