Formation PUB010 : PHP, 2022 Les bases du PHP

5.3 Intégration du code PHP dans le HTML et vice-versa


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

Code PHP dans les balises HTML

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.

PHP

<nav id="menu">

   <?php

      afficherMenu();

   ?>

</nav>

Balises HTML générées par le PHP

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

<?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

<?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

 

<?php

...

function generer_formulaire() {

?>

 

 

   <form ...>

       ...

   </form>

 

 

<?php

}

...

?>

 

...

Ne pas refermer le bloc PHP en fin de page

Si la page se termine par du code PHP, il n'est pas nécessaire de refermer le bloc avec ?>.

PHP

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

Syntaxe Heredoc

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 :

  • peut être définie sur plusieurs lignes (les sauts de ligne seront ignorés);
  • peut contenir des variables qui seront interprétées correctement;
  • comme la chaîne n'est pas entourée d'apostrophes ni de guillemets, elle peut contenir des apostrophes et des guillemets sans avoir à les échapper.

La syntaxe Heredoc est la suivante :

Syntaxe Heredoc (PHP)

... <<<DELIMITEUR

...

DELIMITEUR;

Important : la syntaxe doit absolument respecter les points suivants :

  • Le nom du délimiteur peut être n'importe quoi à condition qu'il débute par une lettre ou un caractère de soulignement et qu'il ne contienne aucun espace ni caractère accentué. On utilisera souvent EOD, signifiant « End Of Data » ou EOT, pour « End Of Text ».
  • Il est d'usage d'écrire le nom du délimiteur entièrement en lettres majuscules.
  • Le délimiteur de fin doit être seul sur sa ligne. Il ne doit pas y avoir d'espaces ni avant, ni après ce délimiteur. Il ne peut donc pas être indenté.
  • Si le texte à l'intérieur de la syntaxe Heredoc est indenté, les espaces feront partie de la chaîne de caractères. On retrouvera donc le texte aligné à la marge gauche dans la majorité des cas.

Ex :

PHP

$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 :

PHP

function generer_formulaire() {

echo <<<HTML

 

<form ...>

   ...

</form>

 

HTML;

}

Pour plus d'information

« Manuel PHP ». PHP official site. http://www.php.net/manual/fr/

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Par Christiane Lagacé
Dernière révision le 11 février 2023
Merci de partager !

Site fièrement hébergé chez A2 Hosting.

Soumettre