(PHP 4, PHP 5)
sprintf — Retourne une chaîne formatée
Retourne une chaîne formatée, avec le format
format
, en utilisant les arguments
args
.
format
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 :
La chaîne de format supporte le numérotage et l'échange d'arguments. Par exemple :
Exemple #1 Échange d'arguments
<?php
$num = 5;
$location = 'bananier';
$format = 'Il y a %d singes dans le %s';
echo sprintf($format, $num, $location);
?>
Exemple #2 Échange d'arguments (2)
<?php
$format = 'Le %s a %d singes';
echo sprintf($format, $num, $location);
?>
Exemple #3 Échange d'arguments (3)
<?php
$format = 'Le %2$s a %1$d singes';
echo sprintf($format, $num, $location);
?>
Exemple #4 Échange d'arguments (4)
<?php
$format = 'Le %2$s a %1$d singes.
C\'est un beau %2$s avec %1$d singes.';
echo sprintf($format, $num, $location);
?>
Exemple #5 Spécificateur de position avec d'autres spécificateurs
<?php
$format = 'The %2$s contains %1$04d monkeys';
echo sprintf($format, $num, $location);
?>
L'exemple ci-dessus va afficher :
The tree contains 0005 monkeys
args
...
Retourne une chaîne de caractères créée suivant le format
format
.
Version | Description |
---|---|
4.0.6 | Ajout du support de l'argument d'échange |
Exemple #6 printf() : divers exemples
<?php
$n = 43951789;
$u = -43951789;
$c = 65; // ASCII 65 is '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'
Exemple #7 printf() : 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]
Exemple #8 sprintf() : entier sans espace
<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>
Exemple #9 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"
?>
Exemple #10 sprintf(): notation scientifique
<?php
$number = 362525200;
echo sprintf("%.3e", $number); // affiche 3.625e+8
?>