Comenta HTML y PHP juntos

91

Tengo este codigo

    <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>

y me encantaría comentar ambos de una sola vez ... pero cuando lo intento

    <!-- <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 página falla - parece que el código PHP no está siendo comentado ... ¿Hay alguna manera de hacer esto?

Matt Elhotiby
fuente

Respuestas:

179

En lugar de usar comentarios HTML (que no tienen ningún efecto en el código PHP, que aún se ejecutará) , debe usar comentarios PHP:

<?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>
*/ ?>


Con eso, el código PHP dentro del HTML no se ejecutará; y no se mostrará nada (ni el HTML, ni el PHP, ni el resultado de su no ejecución) .


Solo una nota: no puede anidar comentarios de estilo C ... lo que significa que el comentario terminará en el primer */encuentro.

Pascal MARTIN
fuente
Esto agrega un poco más (necesita las etiquetas PHP así como el marcado de comentarios PHP), pero esta es la mejor manera de hacerlo, estoy de acuerdo.
qJake
Pero luego, cuando quita los comentarios, también tiene que eliminar las etiquetas <? Php y?>, Lo que supone un poco más de trabajo.
Flipper
4
@flipper: ¿entonces? son unos pocos caracteres adicionales frente a tener que extraer cada bloque de código PHP a mano.
Marc B
Curiosamente, parece que NetBeans 8.0.2 no entiende esto (por lo que formatea mi código incorrectamente a pesar de que esta es una forma válida de comentar HTML).
Ryan
¿Cuál es el atajo para hacerlo en el editor de texto sublime? Sé ctrl + c pero eso no hace comentarios de PHP.
yadavr
42

Estoy de acuerdo en que la solución de Pascal es el camino a seguir, pero para aquellos que dicen que agrega una tarea adicional para eliminar los comentarios, pueden usar el siguiente truco de estilo de comentarios para simplificar su vida:

<?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 // */ ?>

Para evitar que se comente el bloque de código, simplemente cambie el comentario de apertura a:

<?php //* ?>
Nev Stokes
fuente
¿No resulta esta solución en dos filas vacías, cada una con dos celdas vacías, que siguen apareciendo en el HTML?
Sparr
1
No, no es así. Pruébalo y verás! ;)
Nev Stokes
6

Encontré la siguiente solución bastante efectiva si necesita comentar mucho código HTML + PHP anidado.

Envuelve todo el contenido en esto:

<?php
    if(false){
?>

Here goes your PHP + HTML code

<?php
    }
?>
mella
fuente
Esta es la única solución que realmente funciona , no entiendo por qué esta no es la respuesta principal :) ¡Muchas gracias, amigo!
bviktor
Para las 3 personas que realmente quieren decir esta pregunta de la forma en que se hace: ESTA ^ es su respuesta;) - Nota: recomiendo el if (falso): - endif; sintaxis, ya que puede ser más obvio para el próximo desarrollador que está destinado a afectar el marcado
MJHd
4

El <!-- -->es solo para comentarios HTML y PHP aún se ejecutará de todos modos ...

Por lo tanto, lo mejor que haría es comentar también el PHP ...

Dammy Akinsiku
fuente
2

Solo puede lograr esto con comentarios 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> -->

La forma en que funcionan PHP y HTML, no puede comentar de una sola vez a menos que lo haga:

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

*/
?>
Aleta
fuente
0

El analizador de PHP buscará su código completo <?php(o <?si short_open_tag = On), por lo que las etiquetas de comentarios HTML no tienen ningún efecto en el comportamiento del analizador de PHP y si no desea analizar su código PHP, debe utilizar las directivas de comentarios de PHP ( /* */o //) .

Ehsan Khodarahmi
fuente
0

También puede usar esto como comentario:

<?php
    /* get_sidebar(); */

?>
marca
fuente