Комментируйте HTML и PHP вместе

92

У меня есть этот код,

    <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 не закомментирован ... Есть ли способ сделать это?

Мэтт Элхотиби
источник

Ответы:

182

Вместо использования комментариев 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, ни результат его невыполнения) не будет отображаться.


Только одно замечание: вы не можете вкладывать комментарии в стиле C ... это означает, что комментарий будет заканчиваться на первом */встреченном.

Паскаль МАРТИН
источник
Это действительно добавляет немного больше (вам нужны теги PHP, а также разметка комментариев PHP), но я согласен, что это лучший способ сделать это.
qJake
Но затем, когда он раскомментирует, он должен также удалить теги <? Php и?>, Что требует немного больше работы.
Flipper
4
@flipper: так? это лишние несколько символов вместо того, чтобы вручную вырывать каждый блок кода PHP.
Marc B
Интересно, что NetBeans 8.0.2 этого не понимает (и поэтому неправильно форматирует мой код, хотя это допустимый способ закомментировать HTML).
Райан
какой ярлык сделать это в превосходном текстовом редакторе? Я знаю ctrl + c, но это не относится к комментариям PHP.
yadavr
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 05
Для трех человек, которые на самом деле имеют в виду этот вопрос так, как он задан: ЭТО ^ - ваш ответ;) - Примечание: я рекомендую 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(); */

?>
отметка
источник