(PHP 4, PHP 5)
sprintf — Retourne une chaîne formatée
sprintf retourne une chaîne formatée, avec le format format , en utilisant les arguments args .
La chaîne de format est composée de zéro, une ou plusieurs directives : les caractères ordinaires (à l'exception de %) qui sont copiés directement dans le résultat, et des spécifications de conversion, qui exploitent chacune un des arguments passés après la chaîne de format. Ces formats s'appliquent à sprintf() et printf().
Chaque spécification de conversion est constituée d'un signe de pourcentage (%), suivi d'un ou plusieurs des éléments suivants, dans cet ordre :
Un spécificateur de type qui indique le type avec lequel l'argument sera traité. Plusieurs types possibles :
Depuis PHP 4.0.6, la chaîne de format supporte le numérotage et l'échange d'arguments. Par exemple :
Example#1 Echange d'arguments
<?php
$format = 'Il y a %d singes dans le %s';
printf($format, $num, $location);
?>
Example#2 Echange d'arguments (2)
<?php
$format = 'Le %s a %d singes';
printf($format, $num, $location);
?>
Example#3 Echange d'arguments (3)
<?php
$format = 'Le %2\$s a %1\$d singes';
printf($format, $num, $location);
?>
Example#4 Echange d'arguments (4)
<?php
$format = 'Le %2\$s a %1\$d singes.
C'est un beau %2$s, avec %1$d singes.;
printf($format, $num, $location);
?>
Voir aussi printf(), sscanf(), fscanf(), vsprintf() et number_format().
Example#5 sprintf() : exemples divers
<?php
$n = 43951789;
$u = -43951789;
$c = 65; // ASCII 65 est un 'A'
// notez le double %%, cela affiche un caractère '%' littéral
printf("%%b = '%b'\n", $n); // représentation binaire
printf("%%c = '%c'\n", $c); // affiche le caractère ascii, comme la fonction chr()
printf("%%d = '%d'\n", $n); // représentation standard d'un entier
printf("%%e = '%e'\n", $n); // notation scientifique
printf("%%u = '%u'\n", $n); // représentation entière non signée d'un entier positif
printf("%%u = '%u'\n", $u); // représentation entière non signée d'un entier négatif
printf("%%f = '%f'\n", $n); // représentation en virgule flottante
printf("%%o = '%o'\n", $n); // représentation octale
printf("%%s = '%s'\n", $n); // représentation chaîne de caractères
printf("%%x = '%x'\n", $n); // représentation hexadécimal (minuscule)
printf("%%X = '%X'\n", $n); // représentation hexadécimal (majuscule)
printf("%%+d = '%+d'\n", $n); // indication du signe pour un entier positif
printf("%%+d = '%-d'\n", $u); // indication du signe pour un entier négatif
?>
L'exemple ci-dessus va afficher :
%b = '10100111101010011010101101' %c = 'A' %d = '43951789' %e = '4.39518e+7' %u = '43951789' %u = '4251015507' %f = '43951789.000000' %o = '247523255' %s = '43951789' %x = '29ea6ad' %X = '29EA6AD' %+d = '+43951789' %+d = '-43951789'
Example#6 sprintf() : spécificateurs chaînes de caractères
<?php
$s = 'monkey';
$t = 'many monkeys';
printf("[%s]\n", $s); // affichage d'une chaîne standard
printf("[%10s]\n", $s); // justification à droite avec des espaces
printf("[%-10s]\n", $s); // justification à gauche avec des espaces
printf("[%010s]\n", $s); // l'espacement nul fonctionne aussi sur les chaînes
printf("[%'#10s]\n", $s); // utilisation du caractère personnalisé de séparation '#'
printf("[%10.10s]\n", $t); // justification à gauche mais avec une coupure à 10 caractères
?>
L'exemple ci-dessus va afficher :
[monkey] [ monkey] [monkey ] [0000monkey] [####monkey] [many monke]
Example#7 sprintf() : entier sans espace
<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>
Example#8 sprintf() : formatage de devises
<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money affichera "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted affichera "123.10"
?>
Example#9 sprintf() : notation scientifique
<?php
$number = 362525200;
echo sprintf("%.3e", $number); // affiche 3.625e+8
?>