Fonction vsprintf() de PHP

Exemple

Écrire une chaîne formatée dans une variable :

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

Exemple de exécution

Définition et utilisation

La fonction vsprintf() écrit une chaîne formatée dans une variable.

Différent de sprintf(), les paramètres de vsprintf() sont situés dans un tableau. Les éléments du tableau sont insérés à l'intérieur de la chaîne principale à l'endroit du symbole pourcentage (%) du principal. Cette fonction est exécutée progressivement. À l'endroit du premier %, l'élément du premier tableau est inséré, à l'endroit du second %, l'élément du second tableau est inséré, et ainsi de suite.

Remarque :Si il y a plus de % arg Si vous avez des paramètres, vous devez utiliser desholders. Lesholders sont insérés après le symbole % et sont composés de nombres et de "\$". Voir l'exemple 2.

Astuce :Fonctions associées :

Syntaxe

vsprintf(format,argarray)
Paramètres Description
format

Obligatoire. Définir la chaîne et la manière dont les variables y 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 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 (supérieur ou égal à 0)
  • %f - Nombre flottant (en fonction des paramètres locaux)
  • %F - Nombre flottant (non en fonction des paramètres locaux)
  • %g - Plus court %e et %f
  • %G - Plus court %E et %f
  • %o - Nombre octal
  • %s - Chaîne
  • %x - Nombre hexadécimal (lettres minuscules)
  • %X - Nombre hexadécimal (lettres majuscules)

Valeurs de format supplémentaires. Obligatoire. Placé entre % et la lettre (par exemple %.2f) :

  • + (ajoute + ou - devant le nombre pour définir la signification du signe du nombre. Par défaut, seul le signe négatif est marqué, le signe positif ne l'est pas)
  • ' (définir 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 (utilisez "x" comme rembourrage))
  • - (alignement à gauche de la valeur de la variable)
  • .[0-9] (définir la largeur minimale de la valeur de la variable)
  • .[0-9] (définir 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 indiqué ci-dessus et ne doivent pas être mélangées.

argarray Obligatoire. Un tableau avec des paramètres, ces paramètres seront insérés format Au niveau du symbole % dans la chaîne.

Détails techniques

Valeur de retour : Retourne les valeurs de tableau sous forme de chaîne formatée.
Version PHP : 4.1.0+

Plus d'exemples

Exemple 1

Utilisez la valeur de format %f :

<?php
$num1 = 123;
$num2 = 456;
$txt = vsprintf("%f%f",array($num1,$num2));
echo $txt;
?>

Exemple de exécution

Exemple 2

Utilisation des placeholders :

<?php
$number = 123;
$txt = vsprintf("Avec deux décimales:%1\$.2f<br>Sans décimales:%1\$u",array($number));
echo $txt;
?>

Exemple de exécution

Exemple 3

Utilisation de sprintf() pour démontrer tous les formats possibles :

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // Le caractère ASCII 50 est 2
// Commentaire : La valeur de format "%%" renvoie le pourcentage
echo sprintf("%%b = %b",$num1)."<br>"; // Nombre binaire
echo sprintf("%%c = %c",$char)."<br>"; // Caractère ASCII
echo sprintf("%%d = %d",$num1)."<br>"; // Nombre décimal signé
echo sprintf("%%d = %d",$num2)."<br>"; // Nombre décimal signé
echo sprintf("%%e = %e",$num1)."<br>"; // Notation scientifique en minuscule
echo sprintf("%%E = %E",$num1)."<br>"; // Notation scientifique en majuscule
echo sprintf("%鑾u",$num1)."<br>"; // Nombre décimal sans signe (positif)
echo sprintf("%鑾u",$num2)."<br>"; // Nombre décimal sans signe (negatif)
echo sprintf("%%f = %f",$num1)."<br>"; // Nombre flottant (en fonction de la configuration locale)
echo sprintf("%%F = %F",$num1)."<br>"; // Nombre flottant (ignorant la configuration locale)
echo sprintf("%%g = %g",$num1)."<br>"; // Plus court que %e et %f
echo sprintf("%%G = %G",$num1)."<br>"; // Plus court que %E et %f
echo sprintf("%%o = %o",$num1)."<br>"; // Nombre octal
echo sprintf("%%s = %s",$num1)."<br>"; // Chaine
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 (negatif)
?>

Exemple de exécution

Exemple 4

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

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

Exemple de exécution