Il en existe deux types, sans compter les guillemets arrière (′), utilisés pour des commandes système sous Unix que nous n’évoquerons pas dans cet ouvrage.
Les guillemets simples
Vous l’avez vu dans le chapitre précédent, les chaînes de caractères insérées dans des guillemets simples sont affichées littéralement. Vous ne pouvez donc y utiliser des variables.
$une_phrase=’je suis sur la page’;
affichera la phrase intégrale. Comment faire pour une phrase contenant une apostrophe ?
$une_phrase=’je m’y emploie’;
Avec cette phrase, vous afficherez une erreur sur la page web. Pour y remédier, il vous suffit d’ajouter un signe d’échappement avant l’apostrophe.
Maintenant, vous obtenez :
$une_phrase=’je m\’y emploie’;
Cette phrase est parfaitement acceptée par le moteur PHP qui, s’il voit un guillemet simple commencer une chaîne, cherche le deuxième guillemet qui la clôt. Quand il trouve l’apostrophe, il conclut qu’elle sert de clôtur à la chaîne, alors aidez-le avec une barre oblique inversée pour qu’il fasse la différence entre une apostrophe et un guillemet simple fermant.
Les guillemets simples sont très utiles au programmeur qui doit écrire un certain nombre de lignes HTML avec des echo. Il n’aura pas besoin de placer des caractères d’échappement devant chaque guillemet double délimitant les valeurs d’attribut HTML.
echo ’<td bgcolor="#FFFFFF"><font face="Arial">Email:</font></td>’;
sera correct. Vous disposez d’un outil très accommodant.
Si vous allez à la ligne dans une chaîne entre guillemets simples, cette dernière affichera ce passage à la ligne :
<pre> avec des guillemets simples : pre.php
<?
$phrase=’<PRE>Je vais à la ligne
Ah je suis une ligne plus bas!
Bon, je m\’arrête là.</PRE>’;
echo "<font size=\"7\"><b>$phrase</b></font>";
?>
La page web affichera le passage à la ligne.
Les guillemets doubles
Les guillemets doubles servent aussi à caractériser des chaînes de caractères, avec cependant quelques nuances.
Comme nous l’avons vu, les doubles guillemets font une extrapolation de variable, c’est-à-dire qu’ils remplacent le nom des variables par leur valeur. D’autre part, ils permettent d’utiliser des syntaxes spéciales
d’échappement.
Prenons un exemple tiré du poème l’Âme du vin de Charles Baudelaire :
Listing : L’Âme du vin : ame_vin.php
$vers1="Un soir, l’âme du vin chantait dans les bouteilles!<BR>\n";
$vers2=" – \"Homme, vers toi je pousse, ô cher déshérité,<BR>\n";
$vers3="Sous ma prison de verre et mes cires vermeilles,<BR>\n";
$vers4="Un chant plein de lumière et de fraternité!<BR>\n";
$strophe=$vers1.$vers2.$vers3.$vers4;
Cette strophe demande quelques éclaircissements.
Chaque ligne est close par une balise <BR> et une séquence d’échappement \n. Nous avons vu que la balise <BR> affichait une fin de ligne dans une page web HTML. Le \n aussi. Le \n, exclusivement dans des guillemets doubles, constitue une fin de ligne. Pourquoi mettre deux fois une fin de ligne ? Simplement pour obtenir un code source propre et lisible. La source HTML renvoyée par le moteur PHP sera :
Un soir, l’âme du vin chantait dans les bouteilles!<BR>
– "Homme, vers toi je pousse, ô cher déshérité,<BR>
Sous ma prison de verre et mes cires vermeilles,<BR>
Un chant plein de lumière et de fraternité!<BR>
La séquence d’échappement \n n’est pas répercutée dans l’affichage de la page mais dans l’affichage du code source HTML.
D’autre part, vous avez remarqué sans doute que la séquence \" permettait d’insérer des guillemets doubles dans une chaîne encadrée elle-même de guillemets doubles, comme pour l’apostrophe précédemment. Par contre, l’apostrophe n’a pas besoin de barre oblique inversée à l’intérieur de doubles guillemets, c’est logique.
Les séquences d’échappement
Les guillemets simples
Vous l’avez vu dans le chapitre précédent, les chaînes de caractères insérées dans des guillemets simples sont affichées littéralement. Vous ne pouvez donc y utiliser des variables.
$une_phrase=’je suis sur la page’;
affichera la phrase intégrale. Comment faire pour une phrase contenant une apostrophe ?
$une_phrase=’je m’y emploie’;
Avec cette phrase, vous afficherez une erreur sur la page web. Pour y remédier, il vous suffit d’ajouter un signe d’échappement avant l’apostrophe.
Maintenant, vous obtenez :
$une_phrase=’je m\’y emploie’;
Cette phrase est parfaitement acceptée par le moteur PHP qui, s’il voit un guillemet simple commencer une chaîne, cherche le deuxième guillemet qui la clôt. Quand il trouve l’apostrophe, il conclut qu’elle sert de clôtur à la chaîne, alors aidez-le avec une barre oblique inversée pour qu’il fasse la différence entre une apostrophe et un guillemet simple fermant.
Les guillemets simples sont très utiles au programmeur qui doit écrire un certain nombre de lignes HTML avec des echo. Il n’aura pas besoin de placer des caractères d’échappement devant chaque guillemet double délimitant les valeurs d’attribut HTML.
echo ’<td bgcolor="#FFFFFF"><font face="Arial">Email:</font></td>’;
sera correct. Vous disposez d’un outil très accommodant.
Si vous allez à la ligne dans une chaîne entre guillemets simples, cette dernière affichera ce passage à la ligne :
<pre> avec des guillemets simples : pre.php
<?
$phrase=’<PRE>Je vais à la ligne
Ah je suis une ligne plus bas!
Bon, je m\’arrête là.</PRE>’;
echo "<font size=\"7\"><b>$phrase</b></font>";
?>
La page web affichera le passage à la ligne.
| Passage à la ligne à l’intérieur de guillemets simples |
Les guillemets doubles servent aussi à caractériser des chaînes de caractères, avec cependant quelques nuances.
Comme nous l’avons vu, les doubles guillemets font une extrapolation de variable, c’est-à-dire qu’ils remplacent le nom des variables par leur valeur. D’autre part, ils permettent d’utiliser des syntaxes spéciales
d’échappement.
Prenons un exemple tiré du poème l’Âme du vin de Charles Baudelaire :
Listing : L’Âme du vin : ame_vin.php
$vers1="Un soir, l’âme du vin chantait dans les bouteilles!<BR>\n";
$vers2=" – \"Homme, vers toi je pousse, ô cher déshérité,<BR>\n";
$vers3="Sous ma prison de verre et mes cires vermeilles,<BR>\n";
$vers4="Un chant plein de lumière et de fraternité!<BR>\n";
$strophe=$vers1.$vers2.$vers3.$vers4;
Cette strophe demande quelques éclaircissements.
Chaque ligne est close par une balise <BR> et une séquence d’échappement \n. Nous avons vu que la balise <BR> affichait une fin de ligne dans une page web HTML. Le \n aussi. Le \n, exclusivement dans des guillemets doubles, constitue une fin de ligne. Pourquoi mettre deux fois une fin de ligne ? Simplement pour obtenir un code source propre et lisible. La source HTML renvoyée par le moteur PHP sera :
Un soir, l’âme du vin chantait dans les bouteilles!<BR>
– "Homme, vers toi je pousse, ô cher déshérité,<BR>
Sous ma prison de verre et mes cires vermeilles,<BR>
Un chant plein de lumière et de fraternité!<BR>
La séquence d’échappement \n n’est pas répercutée dans l’affichage de la page mais dans l’affichage du code source HTML.
D’autre part, vous avez remarqué sans doute que la séquence \" permettait d’insérer des guillemets doubles dans une chaîne encadrée elle-même de guillemets doubles, comme pour l’apostrophe précédemment. Par contre, l’apostrophe n’a pas besoin de barre oblique inversée à l’intérieur de doubles guillemets, c’est logique.
Les séquences d’échappement
Séquence d’échappement
|
Définition
|
\n
|
Nouvelle
ligne
|
\r
|
Retour
chariot (utilisé uniquement sous Windows)
|
\t
|
Tabulation
|
\$
|
Le signe
Dollar
|
\\
|
Barre
oblique inversée
|
Aucun commentaire:
Enregistrer un commentaire