Remplacez le signe pour cent (%) par une variable passée en paramètre :
<?php $number = 9 ; $str = " CODERCTO " ; $txt = sprintf ( " %s est visité par %u millions de personnes chaque jour ! " , $str , $number ) ; $txt ; >Le résultat de l'exécution est le suivant :
CODERCTO 每天有9 万人在访问!
La fonction sprintf() écrit une chaîne formatée dans une variable.
Les paramètres arg1, arg2, ++ seront insérés dans la chaîne principale au niveau du symbole de pourcentage (%). Cette fonction est exécutée étape par étape. Au premier signe %, insérez arg1, au deuxième signe %, insérez arg2, 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 : printf(), vprintf(), vsprintf(), fprintf() et vfprintf()
sprintf( format,arg1,arg2,arg++ )
paramètre | décrire |
---|---|
format | Requis. Spécifie une chaîne et comment les variables qu'elle contient doivent être formatées. 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. |
arg1 | Requis. Spécifie les paramètres à insérer au premier signe % dans la chaîne de format. |
arg2 | Facultatif. Spécifie les paramètres à insérer dans la chaîne de format au deuxième signe %. |
argument++ | Facultatif. Spécifie les paramètres à insérer dans la chaîne de format au niveau des troisième, quatrième, etc. symboles %. |
Valeur de retour : | Renvoie une chaîne formatée. |
---|---|
Version PHP : | 4+ |
Utilisez la valeur de format %f :
<?php $numéro = 123 ; $txt = sprintf ( " %f " , $numéro ) echo ; $txt ; >Utilisez des espaces réservés :
<?php $number = 123 ; $txt = sprintf ( " Avec deux décimales : %1 $ .2f<br>Sans décimale : %1 $ u " , $number ) ; $txt ; >Démonstration de 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 le signe pour cent écho sprintf ( " %%b = %b " , $num1 ) " <br> " // Nombre binaire . écho sprintf ( " %%c = % c " , $ char ) " <br> " ; écho sprintf ( " %%d = %d " , $ num1 ) " <br> " // Nombre décimal signé . écho sprintf ( " %%d = %d " , $ num2 ) " <br> " // Nombre décimal signé . écho sprintf ( " %%e = %e " , $num1 ) " <br> " // Notation scientifique (minuscules ) ; écho sprintf ( " %%E = %E " , $num1 ) " <br> " // Notation scientifique (majuscule ) ; écho sprintf ( " %%u = %u " , $num1 ) " <br> " // Nombre décimal non signé (positif ) ; écho sprintf ( " %%u = %u " , $num2 ) " <br> " // Nombre décimal non signé (négatif ) ; écho sprintf ( " %%f = %f " , $num1 ) " <br> " // Nombre à virgule flottante (selon les paramètres locaux) écho sprintf ( " %%F = %F " , $num1 ) " <br> " // Nombre à virgule flottante ( quels que soient les paramètres locaux) écho sprintf ( " %%g = %g " , $num1 ) " <br> " // Plus court que % e et % f . écho sprintf ( " %%G = %G " , $num1 ) " <br> " // Plus court que % E et % f . écho sprintf ( " %% o = % o " , $ num1 ) " <br> " ; écho sprintf ( " %%s = %s " , $num1 ) " <br> " // Chaîne . écho sprintf ( " %%x = %x " , $num1 ) " <br> " // Nombre hexadécimal (minuscule ) ; écho sprintf ( " %%X = %X " , $num1 ) " <br> " // Nombre hexadécimal ( majuscule) ; écho sprintf ( " %% + d = %+d " , $num1 ) " <br> " // Spécificateur de symbole (positif) ; écho sprintf ( " %%+d = %+d " , $num2 ) " <br> " // Spécificateur de signe (négatif ) ; ?>Démonstration des spécificateurs de chaînes :
<?php $str1 = " Bonjour " ; $str2 = " Bonjour tout le monde ! " ; sprintf ( " [%s ] " , $ str1 ) " <br> " ; sprintf ( " [ %8s] " , $ str1 ) " <br> " ; sprintf ( " [ %-8s] " , $ str1 ) " <br> " ; sprintf ( " [ %08s] " , $ str1 ) " <br> " ; sprintf ( " [ %'*8s] " , $ str1 ) " <br> " ; sprintf ( " [%8.8s] " , $ str2 ) " <br> " ? >