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?

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.


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

¿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
    }
?>

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


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;

*/
?>

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 //) .


0

También puede usar esto como comentario:

<?php
    /* get_sidebar(); */

?>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.