Коментуйте HTML та PHP разом


91

У мене є цей код,

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

і я хотів би прокоментувати обидва в одному кадрі ... але коли я спробую

    <!-- <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-код не коментується ... Чи є спосіб це зробити?

Відповіді:


179

Замість використання коментарів HTML (які не впливають на PHP-код - який все одно буде виконуватися) , слід використовувати коментарі 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>
*/ ?>


При цьому PHP-код всередині HTML не буде виконаний; і нічого (ні HTML, ні PHP, ні результат його невиконання) не відображатимуться.


Тільки одне зауваження: ви не можете вкладати коментарі у стилі С ... що означає, що коментар закінчується при першій */зустрічі.


Це додає трохи більше (вам потрібні теги PHP, а також розмітка коментарів PHP), але це найкращий спосіб зробити це, я погоджуюсь.
qJake

Але тоді, коли він коментує, йому доводиться також видаляти теги <? Php і?>, Що є трохи більше роботи.
Фліппер,

4
@flipper: так? це зайві кілька символів проти того, щоб виривати кожен блок PHP-коду вручну.
Marc B

Цікаво, що схоже, що NetBeans 8.0.2 цього не розуміє (і тому неправильно форматує мій код, хоча це правильний спосіб коментувати HTML).
Райан

який ярлик зробити це у піднесеному текстовому редакторі? Я знаю ctrl + c, але це не робить коментарів на PHP.
ядавр

42

Я згоден з тим, що рішення Паскаля - це шлях, але для тих, хто каже, що він додає додаткове завдання для видалення коментарів, ви можете використати такий трюк стилю коментарів, щоб спростити своє життя:

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

Щоб зупинити коментування блоку коду, просто змініть початковий коментар на:

<?php //* ?>

Хіба це рішення не призводить до того, що два порожні рядки, кожен з двома порожніми клітинками, все ще відображаються в HTML?
Sparr

1
Ні, це не так. Спробуйте і подивіться! ;)
Нев Стокс

6

Я знайшов наступне рішення досить ефективним, якщо вам потрібно прокоментувати багато вкладених кодів HTML + PHP.

Оберніть весь вміст у цьому:

<?php
    if(false){
?>

Here goes your PHP + HTML code

<?php
    }
?>

Це єдине рішення, яке насправді працює , я не розумію, чому це не головна відповідь :) Велике спасибі, чувак!
bviktor

Для 3-х людей, які насправді означають це питання так, як його задають: ЦЕ ^ - це ваша відповідь;) - Примітка: Я рекомендую if (false): - endif; синтаксис, оскільки для наступного розробника може бути більш очевидним, що він має впливати на розмітку
MJHd

4

Це <!-- -->лише для коментування HTML, і PHP все одно буде працювати ...

Тому найкраще, що я б зробив, це також прокоментувати PHP ...


2

Ви можете досягти цього лише за допомогою коментарів 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 і HTML, не може коментувати одним махом, якщо ви цього не зробите:

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

PHP-аналізатор буде шукати весь ваш код <?php(або <?якщо short_open_tag = On), тому теги коментарів HTML не впливають на поведінку синтаксичного аналізатора PHP; якщо ви не хочете аналізувати свій PHP-код, вам доведеться використовувати директиви щодо коментування PHP ( /* */або //) .


0

Ви також можете використовувати це як коментар:

<?php
    /* get_sidebar(); */

?>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.