Cours ⇒ Cour PHP facebook twitter youtube

Les chaînes de caractères ⇒ & Affichage des chaînesr



Affichage des chaînesr

Vous pouvez utiliser l'opérateur de concaténation entre chaque expression, comme dans
l'exemple suivant :

$nom = "Ahmed";
echo "Bonjour Monsieur ". $nom. " nous sommes le ". date('d');

 

Dans le code, vous réalisez successivement la concaténation d'une chaîne littérale, d'une
variable de type string, d'une deuxième chaîne puis de la valeur retournée par une fonction,
qui est ici de type string. Après quoi, echo affiche l'ensemble dans le navigateur

Le même résultat pourrait être obtenu sans concaténation, en séparant chaque expression
par une virgule, comme ci-dessous :

echo "Bonjour Monsieur ", $nom," nous sommes le ",date('d');

Il n'est pas possible d'inclure de fonction dans une chaîne unique, comme ci-dessous

echo "Bonjour Monsieur $nom nous sommes le date('d')" ;

Si la variable $nom est bien évaluée, la fonction date() ne pourrait pas l'être.
La

« fonction » print()

est quasiment similaire à echo. Vous pouvez écrire, par exemple


print ("Bonjour Monsieur $nom nous sommes le ". date('d') );


ou :

print ("Bonjour Monsieur $nom nous sommes le "). date('d');


Dans ces deux cas, vous obtenez la valeur retournée par la fonction date().

 


Affichage formaté

Un affichage formaté permet d'obtenir des résultats uniformes, par exemple, pour aligner
des chaînes sur plusieurs lignes ou des nombres dans un format particulier, comme un
nombre de décimales fixe et une superposition correcte des chiffres en colonnes pour des
montants financiers

Vous disposez de deux fonctions pour cela,

printf() et sprintf().
La syntaxe de printf() est la suivante

 

void printf(string "format", string $ch1, string $ch2,..... $chN)

Cette fonction affiche directement le contenu des chaînes $ch1, $ch2, …, $chN selon le
format spécifié dans la chaîne "format".

La syntaxe de sprintf() est la suivante

 

string sprintf(string "format",string $ch1, string $ch2,..... $chN)

 

Elle retourne une chaîne unique, qui peut être composée de une ou plusieurs fois les
chaînes $ch1, $ch2, …, $chN formatées selon le modèle défini dans la chaîne "format",
comme précédemment.

Les fonctions vprintf et vsprintf, dont la syntaxe est la suivante :

 

void vprintf(string "format" , array $tab)
string vsprintf ( string "format", array $tab)

 

jouent des rôles équivalant respectivement à printf() et sprintf(), mais avec pour particularité
que les chaînes sont passées en argument dans un tableau.

Le plus difficile est ici de bien définir la chaîne de formatage. Celle-ci peut être composée
d'un texte ordinaire, généralement explicatif, et de directives d'affichage. Ces dernières
sont constituées de caractères spéciaux qui indiquent la manière dont les variables
passées en paramètre doivent être incorporées dans la chaîne. C'est cette chaîne qui est
affichée directement ou retournée, selon la fonction utilisée.

Les directives d'affichage sont composées, dans l'ordre, du caractère % suivi de :
• Un caractère de remplissage, utilisé pour compléter la chaîne quand on lui impose une
longueur fixe. Pour définir un caractère autre que 0 ou l'espace (valeur par défaut), il
faut le préfixer par une apostrophe (').
• Un caractère moins (–), pour indiquer un alignement à droite. Par défaut, l'alignement
se fait à gauche.
• Un nombre, indiquant le nombre de caractères pour la chaîne formatée.
• Un point suivi d'un entier, indiquant le nombre de décimales à afficher pour les décimaux.
• Une lettre, indiquant la spécification du type de la valeur à afficher. Le tableau 4-1 donne
la liste et les définitions de ces caractères.


Tableau 4-1 – Les caractères de formatage du type de donnée

Caractère

Signification

%b

Interprète la chaîne $ch comme un entier et l'affiche en binaire :
$ch="89";
printf ("En binaire $ch s'écrit %b <br />", $ch) ;
//Affiche :En binaire 89 s'écrit 1011001

%c

Interprète la chaîne $ch comme un entier et affiche le caractère dont le code ASCII correspond à
ce nombre :
$ch="115";
printf (" Le caractère de code $ch est %c <br />", $ch);
//Affiche: Le caractère de code 115 est s

%d

Interprète la chaîne $ch comme un entier signé et l'affiche comme un nombre en base 10 :
$ch = "–25";
printf ("La valeur de \$ch est %d", $ch); //Affiche –25

%f

Interprète la chaîne $ch comme un nombre de type double et l'affiche avec sa partie décimale à 6
chiffres. Les caractères non numériques de $ch ne sont pas pris en compte :
$ch = "25.52 mètres";
printf ("La longueur est de %f m", $ch);
// Affiche: La longueur est de 25.520000 m

%o

Interprète le chaîne $ch comme un entier et l'affiche en octal :
$ch = 252;
printf ("En octal le nombre $ch s'écrit %o", $ch);
// Affiche: En octal le nombre 252 s'écrit 374

%s

Interprète $ch comme une chaîne et l'affiche telle quelle :
$ch1 = "Monsieur " ; $ch2 = " Schtroumpf" ;
sprintf ("Bonjour,%s %s bravo !",$ch1 $ch2);
Équivaut à :
echo "Bonjour $ch1 $ch2, bravo !";

%x
ou
%X

Interprète la chaîne $ch comme un entier et l'affiche en hexadécimal en minuscules (%x) ou (%X) :
$ch ="252756";
printf ("En hexadécimal $ch s'écrit %x ", $ch) ;
// Affiche: En hexadécimal 252756 s'écrit 3db54

Ordre de passage


La fonction sprintf() incorpore les chaînes passées en paramètre dans l'ordre de leur passage. Vous
pouvez modifier cet ordre ainsi que réutiliser la même valeur sans avoir à passer plusieurs fois le même
paramètre.
Le code ci-dessous illustre cette possibilité. La chaîne de formatage du deuxième appel à sprintf() fait
référence au premier paramètre en écrivant "%1\$s" et "%2\$s" pour le second :
$ch1 = "Monsieur " ;
$ch2 = " Ahmed" ;
echo sprintf ("Bonjour %s %s, bravo !",$ch1,$ch2);
//Affiche: Bonjour Monsieur Ahmed, bravo !


echo sprintf ("Bonjour %2\$s , bravo %1\$s!",$ch1,$ch2);


//Affiche: Bonjour Ahmed, bravo Monsieur !


Changer le fond
Oregionale Skin
7astuces
Sélectionnez un Fond (11)
7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces
Fond de contenu
7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces 7astuces