一起注释掉 HTML 和 PHP

Posted

技术标签:

【中文标题】一起注释掉 HTML 和 PHP【英文标题】:Comment out HTML and PHP together 【发布时间】:2011-08-12 11:43:40 【问题描述】:

我有这个代码,

    <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 cmets(对 PHP 代码没有影响——仍然会被执行),你应该使用 PHP cmets:

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

这样,HTML 中的 PHP 代码将不会被执行;并且不会显示任何(不是 HTML,不是 PHP,不是其不执行的结果)

请注意:您不能嵌套 C 样式的 comments...,这意味着评论将在遇到的第一个 */ 处结束。

【讨论】:

这确实增加了一点(您需要 PHP 标记以及 PHP 注释标记),但这是最好的方法,我同意。 但是当他解开时,他必须同时删除 标记,这需要更多的工作。 @flipper:所以?这是一个额外的几个字符。不得不手动撕掉每一块 PHP 代码。 有趣的是,NetBeans 8.0.2 似乎不理解这一点(因此我的代码格式不正确,即使这是注释掉 HTML 的有效方法)。 在 sublime 文本编辑器中的快捷方式是什么?我知道 ctrl+c 但 PHP cmets 不行。【参考方案2】:

我同意 Pascal 的解决方案是可行的方法,但是对于那些说它增加了删除 cmets 的额外任务的人,您可以使用以下注释样式技巧来简化您的生活:

<?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 中吗? 不,它没有。试试看! ;)【参考方案3】:

如果您需要注释大量嵌套的 HTML + PHP 代码,我发现以下解决方案非常有效。

把所有的内容都包在这个里面:

<?php
    if(false)
?>

Here goes your PHP + HTML code

<?php
    
?>

【讨论】:

这是真正有效的唯一解决方案,我不明白为什么这不是最佳答案 :) 非常感谢,伙计! 对于 3 个人来说,这个问题的真正意思是:这 ^ 是你的答案 ;) - 注意:我推荐 if(false): - endif;语法,因为对于下一个开发人员来说,它可能会更明显地影响标记【参考方案4】:

&lt;!-- --&gt; 仅用于 HTML 注释,PHP 仍将运行...

因此,我最好的办法也是注释掉 PHP...

【讨论】:

【参考方案5】:

您只能使用 PHP cmets 完成此操作。

 <!-- <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 解析器将在您的整个代码中搜索 &lt;?php(或 &lt;?,如果 short_open_tag = On),因此 HTML 注释标签对 PHP 解析器行为没有影响,如果您不想解析您的 PHP 代码,您必须使用 PHP 注释指令(/* *///)。

【讨论】:

【参考方案7】:

您也可以将其用作评论:

<?php
    /* get_sidebar(); */

?>

【讨论】:

以上是关于一起注释掉 HTML 和 PHP的主要内容,如果未能解决你的问题,请参考以下文章

代码.php被注释掉[重复]

如何在 PHP 中注释掉正则表达式的 */ 部分

linux 如何将一行注释掉

如何注释掉包含注释的 HTML 块

如何在 Hugo 中注释掉内容

为啥“<!--”注释掉样式规则,而“<!--”没有?