Échappement depuis du HTML
Tout ce qui se trouve en dehors d'une paire de balises ouvrantes/fermantes
est ignoré par l'analyseur PHP, ce qui permet d'avoir des fichiers PHP
mixant les contenus. Ceci permet à PHP d'être contenu dans des documents
HTML, pour créer par exemple des templates.
Ceci fonctionne comme prévu parce que lorsque l'interpréteur PHP rencontre
la balise fermante ?>, il commence simplement à afficher ce qu'il
rencontre (mise à part s'il est immédiatement suivi d'une nouvelle ligne
: voir l'
instruction
de séparation) jusqu'à ce qu'il rencontre une autre balise ouvrante
même si PHP se trouve au milieu d'une instruction conditionnelle, au quel cas,
l'interpréteur va déterminer la condition à prendre en compte avant de prendre
une décision sur ce qui doit être afficher.
Voir le prochain exemple.
Utilisation de structures avec des conditions
Exemple #1 Echappement avancé en utilisant des conditions
<?php if ($expression == true): ?>
Ceci sera affiché si l'expression est vrai.
<?php else: ?>
Sinon, ceci sera affiché.
<?php endif; ?>
Dans cet exemple, PHP va ignorer les blocs où la condition n'est pas remplie,
même si ils sont en dehors des balises ouvrantes/fermantes de PHP. PHP
va les ignorer suivant la condition vu que l'interpréteur PHP va passer
les blocs contenant ce qui n'est pas remplie par la condition.
Pour afficher de gros blocs de texte, il est plus efficace de sortir
du mode d'analyse de PHP plutôt que d'envoyer le texte via la fonction
echo ou
print.
En PHP 5, Il y a cinq paires différentes de balises ouvrantes / fermantes qui
peuvent être utilisées dans PHP, en fonction de la configuration. Deux de ces balises, <?php ?>
et
<script language="php"> </script>
, sont toujours
disponibles.
Il y a aussi la balise courte <?= ?>
qui est toujours
disponbile depuis PHP 5.4.0 et suivante.
Les autres, sont deux balises courtes et la balise de style ASP.
Bien que, certaines personnes trouvent ces balises courtes et les balises de style
ASP plus agréable à utiliser, elles sont
moins portables et généralement non recommandées.
Note:
Notez également que si vous intégrez PHP dans des documents XML
ou XHTML, vous devez utiliser les balises <?php ?> pour rester
conforme aux standards.
Dans PHP 7 le support de la balise de style ASP
et la balise <script language="php">
ont été retirées.
A ce titre, nous recommandons uniquement l'usage des balises <?php ?>
et <?= ?>
quand vous ecrivez du code PHP pour maximiser la
compatibilité.
Exemple #2 Balises d'ouvertures et de fermetures PHP
1. <?php echo 'Si vous voulez intégrez du code PHP dans des documents XHTML ou XML, utilisez ces balises'; ?>
2. Vous pouvez utiliser la balise courte pour <?= 'écrire ce texte' ?>.
C'est toujours autorisé en PHP 5.4.0 et supérieur, et est équivalent à
<?php echo 'print this string' ?>.
3. <? echo 'ce code est entre des balises courtes'; ?>
Le code suivant <?= 'du texte' ?> est un raccourci pour <? echo 'du texte' ?>
4. <script language="php">
echo 'quelques éditeurs (comme FrontPage)
n\'aiment pas traiter des d\'instructions à l\'intérieur de ces balises';
</script>
Cette syntaxe est retirée dans PHP 7.0.0
5. <% echo 'Vous pouvez optionnellement utiliser les balises ASP-style'; %>
Le code suivant <%= $variable; %> est un raccourci pour <% echo $variable; %>
Ces deux syntaxes sont retirées de PHP 7.0.0
Les balises courtes (troisième exemple) ne sont disponibles que si elles ont
été activées via la directive
short_open_tag
du fichier de configuration php.ini, ou si PHP a été configuré
avec l'option --enable-short-tags
.
Les balises du style ASP (cinquième exemple)
sont uniquement disponibles lorsqu'elles sont activées via la directive
asp_tags du fichier de configuration
php.ini, et ont été retirées dans PHP 7.0.0
Note:
L'utilisation des balises courtes doit être bannie lors de développements
d'applications ou de bibliothèques qui sont destinées à être
redistribuées, ou déployées sur des serveurs qui ne sont pas sous votre
contrôle, car les balises courtes peuvent ne pas être supportées sur le
serveur cible. Pour réaliser du code portable, qui peut être redistribué,
n'utilisez jamais les balises courtes.
Note:
En PHP 5.2 et antérieures, l'analyseur n'autorisait pas
un tag ouvrant <?php comme seul
élément d'une page. Ceci est permis à compter de la version
5.3 de PHP lorsqu'il y a un ou plusieurs espaces après
la balise ouvrante.
Note:
Depuis PHP 5.4, le tag echo court <?= est toujours reconnu
et valide, suivant la configuration de l'option
short_open_tag.