web-dev-qa-db-fra.com

Commentez HTML et PHP ensemble)

J'ai ce code,

    <tr>
      <td><?php echo $entry_keyword; ?></td>
      <td><input type="text" name="keyword" value="<?php echo $keyword; ?>" /></td>
    </tr>
    <tr>
      <td><?php echo $entry_sort_order; ?></td>
      <td><input name="sort_order" value="<?php echo $sort_order; ?>" size="1" /></td>
    </tr>

et j'aimerais commenter les deux d'un coup ... mais quand j'essaie

    <!-- <tr>
      <td><?php echo $entry_keyword; ?></td>
      <td><input type="text" name="keyword" value="<?php echo $keyword; ?>" /></td>
    </tr>
    <tr>
      <td><?php echo $entry_sort_order; ?></td>
      <td><input name="sort_order" value="<?php echo $sort_order; ?>" size="1" /></td>
    </tr> -->

la page échoue - il semble que le code PHP ne soit pas mis en commentaire ... Y a-t-il un moyen de le faire?

85
Matt Elhotiby

Au lieu d'utiliser des commentaires HTML (qui n'ont aucun effet sur le code PHP - qui sera toujours exécuté) , vous devrait utiliser PHP commentaires:

<?php /*
<tr>
      <td><?php echo $entry_keyword; ?></td>
      <td><input type="text" name="keyword" value="<?php echo $keyword; ?>" /></td>
    </tr>
    <tr>
      <td><?php echo $entry_sort_order; ?></td>
      <td><input name="sort_order" value="<?php echo $sort_order; ?>" size="1" /></td>
    </tr>
*/ ?>


Avec cela, le code PHP du HTML ne sera pas exécuté; et rien (pas le HTML, ni le PHP, ni le résultat de sa non-exécution) sera affiché.


Juste une remarque: vous ne pouvez pas imbriquer le style C commentaires ... ce qui signifie que le commentaire se terminera au premier */ rencontré.

166
Pascal MARTIN

Je conviens que la solution de Pascal est la solution, mais si vous dites qu'elle ajoute une tâche supplémentaire pour supprimer les commentaires, vous pouvez utiliser l'astuce de style de commentaire suivante pour vous simplifier la vie:

<?php /* ?>
<tr>
      <td><?php echo $entry_keyword; ?></td>
      <td><input type="text" name="keyword" value="<?php echo $keyword; ?>" /></td>
    </tr>
    <tr>
      <td><?php echo $entry_sort_order; ?></td>
      <td><input name="sort_order" value="<?php echo $sort_order; ?>" size="1" /></td>
    </tr>
<?php // */ ?>

Pour que le bloc de code ne soit pas mis en commentaire, modifiez simplement le commentaire d'ouverture en:

<?php //* ?>
42
Nev Stokes

Le <!-- --> est seulement pour les commentaires HTML et le PHP sera toujours exécuté de toute façon ...

Par conséquent, la meilleure chose à faire est de commenter le PHP ...

4
Dammy Akinsiku

J'ai trouvé la solution suivante assez efficace si vous devez commenter beaucoup de code HTML imbriqué + PHP).

Enveloppez tout le contenu dans ceci:

<?php
    if(false){
?>

Here goes your PHP + HTML code

<?php
    }
?>
4
nick

Vous ne pouvez y parvenir qu'avec PHP commentaires.

 <!-- <tr>
      <td><?php //echo $entry_keyword; ?></td>
      <td><input type="text" name="keyword" value="<?php //echo $keyword; ?>" /></td>
    </tr>
    <tr>
      <td><?php //echo $entry_sort_order; ?></td>
      <td><input name="sort_order" value="<?php //echo $sort_order; ?>" size="1" /></td>
    </tr> -->

De la manière dont PHP et HTML fonctionne, il n’est pas possible de commenter d’un seul coup sauf si vous le faites:

<?php

/*

echo <<<ENDHTML
 <tr>
          <td>{$entry_keyword}</td>
          <td><input type="text" name="keyword" value="{echo $keyword}" /></td>
        </tr>
        <tr>
          <td>{$entry_sort_order}</td>
          <td><input name="sort_order" value="{$sort_order}" size="1" /></td>
        </tr>
ENDHTML;

*/
?>
2
Flipper

Un analyseur PHP cherchera votre code entier pour <?php (ou <? si short_open_tag = On), les balises de commentaire HTML n’ont donc aucun effet sur PHP le comportement de l’analyseur & si vous ne souhaitez pas analyser votre code PHP, vous devez utiliser PHP commenter les directives (/* */ ou //).

0
Ehsan Khodarahmi

Vous pouvez également utiliser cela comme un commentaire:

<?php 
/*get_sidebar();*/ 

?> 
0
Mark