129 votes

Comment est-ce que je peux écho HTML en PHP ?

Je veux conditionnellement sortie HTML pour générer une page, alors, quel est le moyen le plus facile pour faire écho multiligne des fragments de code HTML en PHP 4+? J'ai besoin d'utiliser un framework de template comme Smarty?

echo '<html>', "\n"; // I'm sure there's a better way!
echo '<head>', "\n";
echo '</head>', "\n";
echo '<body>', "\n";
echo '</body>', "\n";
echo '</html>', "\n";

286voto

Chris B Points 4119

Il ya quelques façons d'echo HTML en PHP.

1. Entre les balises PHP

<?php if(condition){ ?>
     <!-- HTML here -->
<?php } ?>

2. Dans un echo

if(condition){
     echo "HTML here";
}

Avec des échos, si vous souhaitez utiliser des guillemets dans le HTML, vous devez utiliser des guillemets simples echos de la sorte:

echo '<input type="text">';

Ou vous pouvez échapper de la sorte:

echo "<input type=\"text\">";

3. Heredocs

4. Nowdocs (depuis PHP 5.3.0)

Modèle des moteurs sont utilisés pour l'utilisation de PHP dans les documents qui contiennent principalement du HTML. En fait, PHP but initial était d'être un langage de templating. C'est pourquoi avec PHP, vous pouvez utiliser des choses comme les balises courtes à l'écho des variables (par exemple, <?=$someVariable?>).

Il existe d'autres moteurs de template (comme Smarty, Twig, etc.) qui font la même syntaxe plus concise (par exemple, {{someVariable}}).

Le principal avantage d'utiliser un moteur de template est de garder le design (Présentation de la Logique) distinct du codage (Logique). Cela rend le code plus propre et plus facile à maintenir dans le long terme.

Si vous avez plus de questions n'hésitez pas à laisser un commentaire. Plus de lecture est disponible sur ces choses dans la Documentation de PHP.

Que Dieu Te Bénisse!


REMARQUE: PHP balises courtes <? et ?> sont déconseillés, car ils ne sont disponibles que si l'option est activée avec short_open_tag php.ini fichier de configuration, ou si PHP a été configuré avec l' --enable-short-tags option. Ils sont disponibles, quel que soit le réglage de 5,4 partir.

66voto

lfx Points 892

essayez comme ceci:

$variable = <<<XYZ
<html>
<body>

</body>
</html>
XYZ;
echo $variable;

32voto

Tom Haigh Points 32314

Vous pouvez utiliser la syntaxe alternative syntaxe alternative pour les structures de contrôle et de sortir de php:

<?php if ($something): ?>
    <some /> <tags /> <etc />
    <?=$shortButControversialWayOfPrintingAVariable ?>
    <?php /* A comment not visible in the HTML but is a bit of a pain to write */ ?>
<?php else: ?>
    <!-- else -->
<?php endif; ?>

16voto

DisgruntledGoat Points 21368

Fondamentalement, vous pouvez mettre de l'HTML n'importe où en dehors des balises PHP. Il est également bénéfique de faire tout votre nécessaire de traitement des données avant de les afficher toutes les données, afin de séparer la logique et de la présentation.

L'affichage des données en elle-même pourrait être à la base d'un même fichier PHP ou vous pouvez inclure un fichier PHP séparé consistant la plupart du temps HTML.

Je préfère ce style compact:

<?php
    /* do your processing here */
?>

<html>
<head>
    <title><?=$title?></title>
</head>
<body>
    <?php foreach ( $something as $item ) : ?>
        <p><?=$item?></p>
    <?php endforeach; ?>
</body>
</html>

Remarque: vous devrez peut-être utiliser <?php echo $var; ?> au lieu de <?=$var?> selon votre configuration de PHP.

7voto

John Kugelman Points 108754

Je suis partielle de ce style:

  <html>
    <head>
<%    if (X)
      {
%>      <title>Definitely X</title>
<%    }
      else
      {
%>      <title>Totally not X</title>
<%    }
%>  </head>
  </html>

Je dois utiliser les balises ASP-style, oui. Le mélange de PHP et de HTML a l'air super lisible à mes yeux. L'astuce consiste à obtenir de l' <% et %> marqueurs juste à droite.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X