Закомментируйте HTML и PHP вместе

#php #html

#php #HTML

Вопрос:

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

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

Ответ №1:

Вместо использования 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… это означает, что комментарий завершится при первом */ обнаруженном.

Комментарии:

1. Это добавляет немного больше (вам нужны теги PHP, а также разметка комментариев PHP), но это лучший способ сделать это, я согласен.

2. Но затем, когда он раскомментирует, ему также придется удалить taags <?php и ?>, что требует немного больше работы.

3. @flipper: и что? это лишние несколько символов из-за того, что приходится вручную вырывать каждый блок PHP-кода.

4. Интересно, что, похоже, NetBeans 8.0.2 этого не понимает (и поэтому неправильно форматирует мой код, хотя это допустимый способ закомментирования HTML).

5. какой ярлык для этого есть в текстовом редакторе sublime? Я знаю ctrl c, но это не делает комментарии PHP.

Ответ №2:

Я согласен, что решение Pascal — это правильный путь, но для тех, кто говорит, что это добавляет дополнительную задачу по удалению комментариев, вы можете использовать следующий трюк в стиле комментариев, чтобы упростить себе жизнь:

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

Комментарии:

1. Не приводит ли это решение к двум пустым строкам, каждая с двумя пустыми ячейками, которые все еще отображаются в HTML?

2. Нет, это не так. Попробуйте и убедитесь! 😉

3. Это более элегантно, но имеет ту же оговорку, что и принятый ответ: он подвержен разрыву, если в разделе с комментариями есть комментарии. Раздел с комментариями.

Ответ №3:

Я нашел следующее решение довольно эффективным, если вам нужно прокомментировать много вложенного HTML PHP кода.

Оберните все содержимое в это:

 <?php
    if(false){
?>

Here goes your PHP   HTML code

<?php
    }
?>
  

Комментарии:

1. Это единственное решение, которое действительно работает , я не понимаю, почему это не лучший ответ 🙂 Большое спасибо, чувак!

2. Для 3 человек, которые на самом деле подразумевают этот вопрос так, как он задан: ЭТО ^ ваш ответ 😉 — Примечание: Я рекомендую синтаксис if(false): — endif;, поскольку для следующего разработчика может быть более очевидно, что он предназначен для влияния на разметку

Ответ №4:

<!-- --> Предназначен только для комментирования HTML, и PHP все равно будет выполняться в любом случае…

Поэтому лучшее, что я бы сделал, это также закомментировать PHP…

Ответ №5:

Вы можете выполнить это только с помощью комментариев 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;

*/
?>
  

Ответ №6:

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

Ответ №7:

Вы также можете использовать это как комментарий:

 <?php
    /* get_sidebar(); */

?>