7.102 Chaînes de caractères (Strings) 
7 Index des fonctions 
 Manuel PHP 
 . Introduction . Pré-requis . Installation . Constantes prédefinies . Voir aussi . addcslashes . addslashes . bin2hex . chop . chr . chunk_split . convert_cyr_string . count_chars . crc32 . crypt . echo . explode . fprintf . get_html_translation_table . hebrev . hebrevc . html_entity_decode . htmlentities . htmlspecialchars . implode . join . levenshtein . localeconv . ltrim . md5_file . md5 . metaphone . money_format . nl_langinfo . nl2br . number_format . ord . parse_str . print . printf . quoted_printable_decode . quotemeta . rtrim . setlocale . sha1_file . sha1 . similar_text . soundex ->sprintf . sscanf . str_ireplace . str_pad . str_repeat . str_replace . str_rot13 . str_shuffle . str_split . str_word_count . strcasecmp . strchr . strcmp . strcoll . strcspn . strip_tags . stripcslashes . stripos . stripslashes . stristr . strlen . strnatcasecmp . strnatcmp . strncasecmp . strncmp . strpos . strrchr . strrev . strripos . strrpos . strspn . strstr . strtok . strtolower . strtoupper . strtr . substr_count . substr_replace . substr . trim . ucfirst . ucwords . vprintf . vsprintf . wordwrap
 
  | 
 
  7.102.49 sprintf()Retourne une chaîne formattée[ Exemples avec sprintf ]   PHP 3, PHP 4  
string
 sprintf (
string
 
format
 ,
mixed
 
args
 )
sprintf   retourne une chaîne formatée, avec
     le format  
format
  et 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é après la chaîne de format.
     Ces formats s'appliquent à  
sprintf
 
     et  
printf
 .
     
     Chaque spécification de conversion est consistituée d'un signe
     de pourcentage ( 
%
 ), suivi d'un ou plusieurs
     des éléments suivants, dans cet ordre : 
      
 
- 
        Un  
remplisseur
  optionnel qui indique
        quel caractère sera utilisé pour compléter le résultat
        jusqu'à la longueur requise. Ce peut être le caractère d'espace,
        ou le caractère  
0
 . Par défaut, le remplissage
        se fait avec des espaces. Un autre caractère de remplissage peut
        être spécifié en le préfixant avec un guillemet simple 
        ( 
'
 ) : voir les exemples ci-dessous.
       
 
- 
        Un  
spécificateur d'alignement
  qui indique
        si le résultat doit être aligné à gauche ou à droite. Par
        défaut, le résultat est aligné à gauche. Le caractère
         
-
  fera que le résultat est aligné à droite.
       
 
- 
        Un nombre optionnel,  
spécificateur de taille
 
        indique le nombre minimum de caractères que cette conversion doit
        fournir en résultat.
       
 
- 
        Un  
spécificateur de précision
  qui indique
        le nombre de décimales qui doivent être affichées pour les nombres
        à virgule flottante. Cette option n'a pas d'effet pour les autres
        types que  
float
 . Une autre fonction pratique pour
        formatter les nombres à virgule flottante est  
number_format
 .
       
 
- 
        Un  
spécificateur de type
  qui indique le type
        avec lequel l'argument sera traité. Plusieurs types possibles :
         
- %
  - un caractère de pourcentage litéral.
          Aucun argument n'est nécessaire.
 
- b
  - l'argument est traité comme un entier,
          et présenté comme un nombre binaire.
 
- c
  - l'argument est traité comme un entier,
          et présenté comme le caractère de code ASCII correspondant.
 
- d
  - l'argument est traité comme un entier,
          et présenté comme un nombre décimal signé.
 
- u
  - l'argument est traité comme un entier,
          et présenté comme un nombre décimal non signé.
 
- f
  - l'argument est traité comme un nombre à 
          virgule flottante (type  
float
 ), et présenté comme un nombre à 
          virgule flottante.
 
- o
  - l'argument est traité comme un entier,
          et présenté comme un nombre octal.
 
- s
  - l'argument est traité et 
          présenté comme une chaîne de caractères.
 
- x
  - l'argument est traité comme un entier,
          et présenté comme un nombre hexadécimal (les lettres en minuscules).
 
- X
  - l'argument est traité comme un entier,
          et présenté comme un nombre hexadécimal (les lettres en majuscules).
 
 
 
 
     Depuis  
PHP
  4.0.6, la chaîne de format supporte le numérotage
     et l'échange d'arguments. Par exemple : 
      
 | Echange d'arguments |  
<?php   $format = "Il y a %d singes dans le %s";   printf($format,$num,$location); ?>
 
 |   
 
     Ce exemple peut afficher par exemple : "Il y a 5 signes dans le bananier". 
     Mais imaginez que la chaîne de format soit créée dans un script
     séparé (une librairie), ca nous devons internationaliser cet
     affichage. Nous aurons peut être à écrire : 
      
| Echange d'arguments (2) |  
<?php   $format = "Le %s a %d singes";   printf($format,$num,$location); ?>
 
 |   
 
     Maintenant, nous avons un problème. L'ordre des arguments a été changé,
     et ne correspond pas à l'ordre des arguments dans le script  
PHP
 .
     Nous souhaitons laisser le code  
PHP
  tel quel, et simplement indiquer
     dans la chaîne de formattage l'ordre dans lequel les arguments doivent
     être repris. La chaîne de format peut être réécrite ainsi : 
      
| Echange d'arguments (3) |  
<?php   $format = "Le %2\$s a %1\$d signes";   printf($format,$num,$location); ?>
 
 |   
 
     Un des avantages est que vous pouvez désormais exploiter plusieurs fois les 
     arguments sans les répéter. Ainsi :
      
| Echange d'arguments (4) |  
<?php   $format = "Le %2\$s a %1\$d singes.            C'est un beau %2\$s, avec %1\$d signes.";   printf($format, $num, $location); ?>
 
 |   
     Voir aussi
      
printf
 ,
      
sscanf
 , 
      
fscanf
  et
      
number_format
 .
     
 
 | sprintf : entiers complétés de zéros |  
<?php   $isodate = sprintf("%04d-%02d-%02d", $year, $month, $day); ?>
 
 |   
 
| sprintf : format de monétaire |  
<?php   $money1 = 68.75;   $money2 = 54.35;   $money = $money1 + $money2; // echo $money va afficher "123.1";   $formatted = sprintf("%01.2f", $money); // echo $formatted va afficher "123.10" ?>
 
 |   
 |