Commenta HTML e PHP insieme


91

Ho questo codice

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

e mi piacerebbe commentare entrambi in uno scatto ... ma quando ci provo

    <!-- <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 pagina fallisce - sembra che il codice PHP non sia stato commentato ... C'è un modo per farlo?

Risposte:


179

Invece di usare commenti HTML (che non hanno alcun effetto sul codice PHP - che verrà comunque eseguito) , dovresti usare i commenti 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 ciò, il codice PHP all'interno dell'HTML non verrà eseguito; e non verrà visualizzato nulla (né l'HTML, né il PHP, né il risultato della sua non esecuzione) .


Solo una nota: non puoi annidare commenti in stile C ... il che significa che il commento finirà al primo */incontro.


Questo aggiunge un po 'di più (hai bisogno dei tag PHP e del markup dei commenti PHP), ma questo è il modo migliore per farlo, sono d'accordo.
qJake

Ma poi quando rimuove il commento deve rimuovere anche i tag <? Php e?>, Il che è un po 'più di lavoro.
Flipper

4
@flipper: quindi? sono pochi caratteri in più rispetto al dover estrarre manualmente ogni blocco di codice PHP.
Marc B

È interessante notare che sembra che NetBeans 8.0.2 non lo capisca (e quindi formatta il mio codice in modo errato anche se questo è un modo valido per commentare l'HTML).
Ryan,

qual è la scorciatoia per farlo nell'editor di testo sublime? Conosco ctrl + c ma questo non fa commenti PHP.
yadavr

42

Sono d'accordo che la soluzione di Pascal sia la strada da percorrere, ma per coloro che dicono che aggiunge un'attività extra per rimuovere i commenti, puoi usare il seguente trucco in stile commento per semplificarti la vita:

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

Per impedire che il blocco di codice venga commentato, cambia semplicemente il commento di apertura in:

<?php //* ?>

Questa soluzione non risulta in due righe vuote, ciascuna con due celle vuote, che appaiono ancora nell'HTML?
Sparr

1
No, non è così. Provalo e guarda! ;)
Nev Stokes

6

Ho trovato la seguente soluzione piuttosto efficace se è necessario commentare un sacco di codice HTML + PHP annidato.

Avvolgi tutto il contenuto in questo:

<?php
    if(false){
?>

Here goes your PHP + HTML code

<?php
    }
?>

Questa è l'unica soluzione che funziona davvero , non capisco perché questa non sia la risposta migliore :) Grazie mille, amico!
bviktor

Per le 3 persone che in realtà intendono questa domanda nel modo in cui è stata posta: QUESTA ^ è la tua risposta;) - Nota: io consiglio if (false): - endif; sintassi, poiché potrebbe essere più ovvio per il prossimo sviluppatore che ha lo scopo di influenzare il markup
MJHd

4

L' <!-- -->è solo per commentare HTML e il PHP continua a funzionare in ogni caso ...

Quindi la cosa migliore che farei è anche commentare il PHP ...


2

Puoi farlo solo con i commenti 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> -->

Il modo in cui funzionano PHP e HTML, non è in grado di commentare in un colpo solo a meno che tu non lo faccia:

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

Il parser PHP cercherà l'intero codice <?php(o <?se short_open_tag = On), quindi i tag di commento HTML non hanno effetto sul comportamento del parser PHP e se non vuoi analizzare il tuo codice PHP, devi usare le direttive di commento PHP ( /* */o //) .


0

Puoi anche usarlo come commento:

<?php
    /* get_sidebar(); */

?>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.