Fonction sprintf() en PHP

Exemple

Remplacez le symbole de pourcentage (%) par une variable passée en paramètre :

<?php
$number = 2;
$str = "Shanghai";
$txt = sprintf("Il y a 쥕lions de voitures dans %s.", $number, $str);
echo $txt;
?>

Exemple de fonctionnement

Définition et utilisation

La fonction sprintf() écrit une chaîne de caractères formatée dans une variable.

arg1,arg2,++ Les paramètres seront insérés à l'endroit des signes (%) dans la chaîne principale. La fonction est exécutée de manière progressive. À l'endroit du premier signe %, insérer arg1, insérer arg2, etc.

Remarque :Si le signe % est plus arg Si des paramètres sont utilisés, vous devez utiliser des placeholders. Les placeholders sont situés après le signe % et composés de nombres et de "\$". Voir l'exemple 2.

Avis :Fonctions associées : printf(), vprintf(), vsprintf(), fprintf() et vfprintf()

Syntaxe

sprintf(format,arg1,arg2,arg++)
Paramètres Description
format

Obligatoire. Détermine la chaîne de caractères et la manière dont les variables doivent être 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 la notation scientifique en minuscules (par exemple 1.2e+2)
  • %E - Utilise la notation scientifique en majuscules (par exemple 1.2E+2)
  • 蒧ombre décimal sans signe (+0)
  • %f - Nombre flottant (configuré localement)
  • %F - Nombre flottant (non configuré localement)
  • %g - Plus court %e et %f
  • %G - Plus court %E et %f
  • %o - Nombre octal
  • %s - Chaîne de caractères
  • %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) :

  • + (ajoute + ou - devant le nombre pour définir la positivité ou la négativité du nombre. Par défaut, seule la négativité est marquée, la positivité ne l'est pas)
  • ' (détermine ce qui est utilisé comme rembourrage, par défaut, c'est un espace. Il doit être utilisé avec l'indicateur de largeur. Par exemple : '%x20s' (utilise 'x' comme rembourrage))
  • - (alignement à gauche de la valeur de la variable)
  • [0-9] (détermine la largeur minimale de la valeur de la variable)
  • .[0-9] (détermine le nombre de décimales ou la longueur maximale de la chaîne de caractères)

Remarque :Si plusieurs valeurs de format ci-dessus sont utilisées, elles doivent être utilisées dans l'ordre ci-dessus.

arg1 Obligatoire. Détermine où insérer format Le paramètre situé au premier signe % dans la chaîne de caractères.
arg2 Optionnel. Détermine où insérer format Le paramètre situé au deuxième signe % dans la chaîne de caractères.
arg++ Optionnel. Détermine où insérer format Les paramètres situés au troisième et quatrième signes % dans la chaîne de caractères.

技术细节

返回值: 返回已格式化的字符串。
PHP 版本: 4+

更多实例

例子 1

使用格式值 %f:

<?php
$number = 123;
$txt = sprintf("%f",$number);
echo $txt;
?>

Exemple de fonctionnement

例子 2

使用占位符:

<?php
$number = 123;
$txt = sprintf("带两位小数:%1\$.2f
<br>不带小数:%1\$u",$number);
echo $txt;
?>

Exemple de fonctionnement

例子 3

对所有可能的格式值的演示:

<?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",$num1)."<br>"; // 不带符号的十进制数(正)
echo sprintf("%鑾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>"; // Chaîne
echo sprintf("%%x = %x",$num1)."<br>"; // Nombre hexadécimal (minuscules)
echo sprintf("%%X = %X",$num1)."<br>"; // Nombre hexadécimal (majuscules)
echo sprintf("%%+d = %+d",$num1)."<br>"; // Indicateur de signe (positif)
echo sprintf("%%+d = %+d",$num2)."<br>"; // Indicateur de signe (négatif)
?>

Exemple de fonctionnement

Exemple 4

Démonstration de l'indicateur de chaîne :

<?php
$str1 = "Hello";
$str2 = "Hello world!";
echo sprintf("[%s]",$str1)."<br>";
echo sprintf("[%8s]",$str1)."<br>";
echo sprintf("[%-8s]",$str1)."<br>";
echo sprintf("[%08s]",$str1)."<br>";
echo sprintf("[%'*8s]",$str1)."<br>";
echo sprintf("[%8.8s]",$str2)."<br>";
?>

Exemple de fonctionnement