É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.

<p>Ceci sera ignoré par PHP et affiché au navigateur.</p>
<?php echo 'Alors que ceci sera analysé par PHP.'?>
<p>Ceci sera aussi ignoré par PHP et affiché au navigateur.</p>
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.