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

Lorsqu'on programme en PHP, il faudra tôt ou tard envoyer du code HTML par programmation. Il existe pour cela différentes techniques expliquées ici :

Il est possible d'utiliser les trois techniques dans un même programme PHP.

▼Publicité

Code PHP dans les balises HTML

À moins de travailler avec les templates, les instructions PHP se retrouveront entremêlées avec les balises HTML. On indiquera au serveur qu'il s'agit d'instructions PHP en les entourant des balises <?php et ?>.

Ex :

PHP

<div id="menu">

   <?php

      afficherMenu();

   ?>

</div>

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

Ex : 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.

Ex :

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

}

...

?>

 

Syntaxe Heredoc

La syntaxe Heredoc 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;

}

Merci de partager ! Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInPin on PinterestShare on StumbleUponEmail this to someone
Catégories