Maison >développement back-end >Problème PHP >Comment échapper à la fonction sprintf en php

Comment échapper à la fonction sprintf en php

WBOY
WBOYoriginal
2022-06-23 16:49:382479parcourir

En PHP, la fonction sprintf peut écrire la chaîne formatée dans une variable pour l'échappement. La syntaxe est "sprintf(format, stipule le paramètre inséré dans le premier symbole % de la chaîne de format, stipule l'insertion du paramètre dans le second. % symbole dans la chaîne de format,...)", où format est utilisé pour spécifier la chaîne et comment formater les variables qu'elle contient.

Comment échapper à la fonction sprintf en php

L'environnement d'exploitation de cet article : système Windows 10, PHP version 8.1, ordinateur Dell G3

Comment échapper à la fonction sprintf en php

La fonction sprintf() écrit la 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 du signe de pourcentage (%). Cette fonction est exécutée étape par étape. Au premier signe %, insérez arg1, au deuxième signe %, arg2, et ainsi de suite.

Remarque : s'il y a plus de symboles % que d'arguments 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 suivi de "$".

La syntaxe est :

sprintf(format,arg1,arg2,arg++)

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 - un nombre binaire

  • %c - le caractère correspondant à la valeur ASCII

  • %d - contient positif Nombres décimaux négatifs (nombres négatifs, 0, nombres positifs)

  • %e - Utilisez la notation scientifique en minuscules (par exemple 1.2e+2)

  • %E - Utilisez 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 (réglage local)

  • %F - Nombre à virgule flottante (réglage non local)

  • %g - %e et %f plus courts

  • %G - %E et %f

  • %o plus courts - Nombre octal

  • %s - Chaîne

  • %x - Nombre hexadécimal (lettres minuscules)

  • %X - Nombre hexadécimal (lettres majuscules)

  • Valeur de format supplémentaire. Doit être placé entre % et les lettres (comme %.2f) :

  • + (Ajoutez + ou - devant le chiffre pour définir le signe du chiffre. Par défaut, seuls les nombres négatifs sont marqués, les positifs Les nombres 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))

  • - (Ajustez la valeur de la variable à gauche)

  • [0-9] (Spécifiez la largeur minimale de la valeur de la variable)

  • .[0-9] (Spécifiez le nombre de décimales ou la longueur maximale de la chaîne)

Remarque : si vous utilisez plusieurs valeurs de format ci-dessus, elles doivent être utilisées dans l'ordre ci-dessus et ne peuvent pas être perturbées.

arg1 requis. Spécifie le paramètre à insérer au premier signe % dans la chaîne de format.

arg2 Facultatif. Spécifie le paramètre à insérer dans la chaîne de format au deuxième signe %.

arg++ Facultatif. Spécifie les paramètres à insérer dans la chaîne de format au niveau des troisième, quatrième, etc. symboles %.

L'exemple est le suivant :

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII 字符 50 是 2
 
// 注释:格式值 "%%" 返回百分号
echo sprintf("%%b = %b",$num1)."<br>"; // 二进制数
echo sprintf("%%c = %c",$char)."<br>"; // ASCII 字符
echo sprintf("%%d = %d",$num1)."<br>"; // 带符号的十进制数
echo sprintf("%%d = %d",$num2)."<br>"; // 带符号的十进制数
echo sprintf("%%e = %e",$num1)."<br>"; // 科学计数法(小写)
echo sprintf("%%E = %E",$num1)."<br>"; // 科学计数法(大写)
echo sprintf("%%u = %u",$num1)."<br>"; // 不带符号的十进制数(正)
echo sprintf("%%u = %u",$num2)."<br>"; // 不带符号的十进制数(负)
echo sprintf("%%f = %f",$num1)."<br>"; // 浮点数(视本地设置)
echo sprintf("%%F = %F",$num1)."<br>"; // 浮点数(不视本地设置)
echo sprintf("%%g = %g",$num1)."<br>"; // 短于 %e 和 %f
echo sprintf("%%G = %G",$num1)."<br>"; // 短于 %E 和 %f
echo sprintf("%%o = %o",$num1)."<br>"; // 八进制数
echo sprintf("%%s = %s",$num1)."<br>"; // 字符串
echo sprintf("%%x = %x",$num1)."<br>"; // 十六进制数(小写)
echo sprintf("%%X = %X",$num1)."<br>"; // 十六进制数(大写)
echo sprintf("%%+d = %+d",$num1)."<br>"; // 符号说明符(正)
echo sprintf("%%+d = %+d",$num2)."<br>"; // 符号说明符(负)
?>

Résultat de sortie :

Comment échapper à la fonction sprintf en php

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn