#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(); */
?>