Je suis passé par là avant de poster:
Comment puis-je faire écho au HTML en PHP?
Et je ne pouvais toujours pas le faire fonctionner.
J'essaie de faire écho à ceci:
<div>
<h3><a href="#">First</a></h3>
<div>Lorem ipsum dolor sit amet.</div>
</div>
<div>
Mais je ne parviens toujours pas à faire disparaître les balises "" et ", que dois-je faire?
<?php
echo '<div>
<h3><a href="#">First</a></h3>
<div>Lorem ipsum dolor sit amet.</div>
</div>
<div>';
?>
Il suffit de le mettre entre guillemets.
Avez-vous essayé la solution heredoc based:
echo <<<HTML
<div>
<h3><a href="#">First</a></h3>
<div>Lorem ipsum dolor sit amet.</div>
</div>
<div>
HTML;
En utilisant le premier mécanisme donné, il le fera.
<?php
...
?>
<div>
<h3><a href="#">First</a></h3>
<div>Lorem ipsum dolor sit amet.</div>
</div>
<div>
<?php
...
?>
Si vous souhaitez générer de grandes quantités de HTML, vous devriez envisager d'utiliser heredoc ou nowdoc syntax. Cela vous permettra d'écrire vos chaînes sans avoir besoin de vous échapper.
echo <<<EOD
You can put "s and 's here if you like.
EOD;
Notez également que, comme PHP est un langage embedded, vous pouvez l'ajouter entre votre contenu HTML et vous n'avez pas besoin d'écho.
<div>
<p>No PHP here!</p>
<?php
$name = "Marcel";
echo "<p>Hello $name!</p>";
?>
</div>
De même, si vous souhaitez simplement générer une variable, vous devez utiliser les balises de sortie abrégées <?=$var?>
. Ceci est équivalent à <?php echo $var; ?>
.
Vous devez échapper le "
pour que PHP ne les reconnaisse pas comme faisant partie de votre code PHP. Vous faites cela en utilisant le caractère d'échappement \
.
Donc, votre code ressemblerait à ceci:
echo
"<div>
<h3><a href=\"#\">First</a></h3>
<div>Lorem ipsum dolor sit amet.</div>
</div>
<div>"
Séparer HTML de PHP est la meilleure méthode. C'est moins déroutant et facile à déboguer.
<?php
while($var)
{
?>
<div>
<h3><a href="User<?php echo $i;?>"><?php echo $i;?></a></h3>
<div>Lorem ipsum dolor sit amet.</div>
</div>
<?php
$i++;
}
?>
Vous avez une variété d'options. On pourrait utiliser PHP comme moteur de template:
<?php
// Draw the page
?>
<div>
<h3><a href="#">First</a></h3>
<div>Lorem ipsum dolor sit amet.</div>
</div>
<?php
// Done drawing.
?>
Une autre solution consiste à utiliser des guillemets simples, ce qui vous permet de laisser des guillemets doubles sans guillemets et de prendre en charge les nouvelles lignes dans les littéraux:
<?php
echo '<div>
<h3><a href="#">First</a></h3>
<div>Lorem ipsum dolor sit amet.</div>
</div>';
?>
Une autre solution consisterait à utiliser un HEREDOC, qui laisse les guillemets inchangés, prend en charge les sauts de ligne et étend les variables internes:
<?php
echo <<<EOS
<div>
<h3><a href="#">First</a></h3>
<div>Lorem ipsum dolor sit amet.</div>
</div>
EOS;
?>
Vous pouvez remplacer '<' par <
et '>' par >
pour ex:
echo "<div>";
la sortie sera visible <div>
pour des chaînes plus longues font une fonction, par ex
function example($input) {
$output = str_replace('>', '>', str_replace('<', '<', $html));
return $output;
}
echo example($your_html);
N'oubliez pas de mettre des barres obliques inverses href=\"#\"
ou de le faire avec des guillemets simples href='#'
ou de le modifier également dans une fonction avec str_replace
pas besoin d'utiliser echo monsieur, utilisez simplement la balise. Bienvenue :)
<plaintext>
<div>
<h3><a href="#">First</a></h3>
<div>Lorem ipsum dolor sit amet.</div>
</div>
Cela fonctionnera aussi très bien avec des guillemets doubles. Pour echo any html_tag avec des guillemets doubles, nous devons simplement nous rappeler d’une chose: NE PAS UTILISER D’AUTRE DOUBLE CITATION (") AU MILIEU.
<?php
echo "
<div>
<h3><a href='https://stackoverflow.com/questions/3931351/how-to-echo-in-php-html-tags'>First</a></h3>
<div>Lorem ipsum dolor sit amet.</div>
</div>
<div>";
?>
Remarquez ici que le lien à l'intérieur du php echo est placé entre guillemets simples. C’est la précaution que vous devez prendre lorsque vous utilisez les guillemets doubles à cette fin.