Lorsqu'on code en PHP, on travaillera souvent dans un fichier qui contient des balises HTML entremêlées avec les instructions PHP. Pour que le serveur puisse traiter correctement les balises PHP, il faudra prendre soin de lui indiquer clairement ce qui est du PHP et ce qui est du HTML.
Tout le HTML sera envoyé directement au client sans aucun traitement. C'est pourquoi les lignes de code PHP qui ne sont pas correctement identifiées apparaîtront en clair sur la page Web, ce qui n'est pas le comportement espéré.
Il existe plusieurs techniques pour intégrer le code PHP dans le HTML et vice-versa. Il est possible d'utiliser plusieurs de ces techniques dans le même fichier HTML.
▼Publicité Le texte se poursuit plus bas
Pour que le serveur sache qu'il a affaire à du code PHP, on entourera les instructions par les balises <?php et ?>.
Dans l'exemple suivant, on envoie une balise <nav> au navigateur puis on exécute une fonction PHP qui se chargera de générer les balises qui seront à l'intérieur de cette division.
<nav id="menu">
<?php
afficherMenu();
?>
</nav>
Il arrive parfois qu'on ait besoin d'insérer des balises HTML à l'intérieur du code PHP. Ceci est possible en utilisant la commande echo.
<?php
...
echo "<li><a href='$enreg[0]'>$enreg[1]</a></li>";
...
?>
...
Si votre code HTML comprend plusieurs balises et qu'il est généré dans une fonction PHP, il sera plus simple de refermer la balise PHP avant de débuter le code puis de la réouvrir après.
<?php
...
function generer_formulaire() {
?>
<form ...>
...
</form>
<?php
}
...
?>
...
Voici le même exemple utilisant des couleurs pour distinguer le code PHP du code HTML. Remarquez que l'accolade qui a été ouverte dans le premier bloc de code PHP doit être refermée dans un bloc PHP ultérieur.
<?php
...
function generer_formulaire() {
?>
<form ...>
...
</form>
<?php
}
...
?>
...
Si la page se termine par du code PHP, il n'est pas nécessaire de refermer le bloc avec ?>.
<?php
...
C'est même préférable de ne pas le faire puisque si jamais il y avait un saut de ligne après ?>, la ligne blanche qui suit serait envoyée au navigateur.
Ceci pourrait causer des problèmes lors d'une redirection.
La syntaxe Heredoc est une autre technique que certains programmeurs aiment utiliser. Elle est cependant plus complexe alors elle vous est donnée ici seulement pour vous montrer son existence. Libre à vous de l'utiliser ou pas.
Cette syntaxe permet de travailler avec une chaîne de caractères qui :
La syntaxe Heredoc est la suivante :
... <<<DELIMITEUR
...
DELIMITEUR;
Important : la syntaxe doit absolument respecter les points suivants :
Ex :
$nom = "Annie";
$surnom = "Duchesse";
$texte = <<<EOD
Bonjour, je m'appelle $nom.
Mon surnom est "$surnom".
EOD;
echo $texte; // affichera « Bonjour, je m'appelle Annie. Mon surnom est "Duchesse". »
Avec toutes ces caractéristiques, la syntaxe Heredoc peut être utilisée avec un echo pour générer une longue séquence HTML à l'intérieur du code PHP.
Ex :
function generer_formulaire() {
echo <<<HTML
<form ...>
...
</form>
HTML;
}
« Manuel PHP ». PHP official site. http://www.php.net/manual/fr/
Site fièrement hébergé chez A2 Hosting.