web-dev-qa-db-fra.com

Comment echo en PHP, balises HTML

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?

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

19
William Macdonald

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;
10
codaddict

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

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

4
Alin Purcaru

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>"
4
Saladin Akara

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++;
  }
?>
3
Wazy

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;
?>
2
Victor Nicollet

Vous pouvez remplacer '<' par &lt; et '>' par &gt; pour ex:

echo "&lt;div&gt;";

la sortie sera visible <div>

pour des chaînes plus longues font une fonction, par ex

function example($input) {
    $output = str_replace('>', '&gt;', str_replace('<', '&lt;', $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

1
platkos

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>
1
Dave Niaga Lape

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. 

0
Anshu Aditya