【问题标题】:Comment out HTML and PHP together一起注释掉 HTML 和 PHP
【发布时间】: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 代码没有被注释掉...有没有办法做到这一点?

【问题讨论】:

    标签: php html


    【解决方案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(); */
          
          ?>
          

          【讨论】:

            猜你喜欢
            • 2015-08-07
            • 2020-04-30
            • 2014-02-12
            • 2023-03-16
            • 1970-01-01
            • 1970-01-01
            • 2016-06-11
            • 2011-06-01
            • 2014-12-11
            相关资源
            最近更新 更多