【问题标题】:HTML is still reading php code with <!---->HTML 仍在使用 <!----> 读取 php 代码
【发布时间】:2013-12-02 22:32:32
【问题描述】:

我有以下问题。我在我的页面中使用了以下代码来忽略一些 php 代码,但似乎在感恩节周末有更新并且不再忽略代码。

<!--

<div class="main">
    <div class="main-sub">
<?php include('http://www.contractorsintelligence.com/contractors-license/includes-page-elements/navigation1.php'); 
?>
<div id="mid-top"><img src="" width="990" height="20" alt="Top Spacer"/></div>
            <div id="mid_shdw">

-->

其余的 html 代码被忽略,但只有 php 代码没有被忽略。我知道其中一种方法是将&lt;!-- 包含到 php 函数中。但是有没有其他方法可以用其余的html代码忽略php代码?

【问题讨论】:

  • PHP 在服务器端运行,它不知道 HTML cmets 是什么。 &lt;?php ... ?&gt; 之间的所有内容都将被执行。只有浏览器不会显示&lt;!-- --&gt; 之间的内容。
  • 世界上谁赞成这个 4 倍??
  • ....我的立场是正确的:6x - 显然是 6 个幽灵帐户。
  • @Fred-ii- - 虽然这对某些人来说可能是一个简单的问题,但你必须承认它比许多通过 PHP 标签的帖子要好得多:P
  • 我必须承认,最近有不少与 DB 有关的“真正愚蠢”的问题。我想你有一个观点。奇怪的是,为什么 OP 的代码会突然停止,但是在我的整个经历中,我从来没有见过&lt;!-- comment --&gt; 曾经在 PHP 中工作过。就像您在回答中所说的那样,它们是 HTML cmets,纯粹而简单。 @Lix

标签: php html


【解决方案1】:

这是HTML comment。它对 PHP 代码没有影响。

你应该使用PHP comments:

屏蔽评论:

/*
BLOCK OF COMMENTED CODE
*/

行注释:

// this is a commented line

PHP 代码由服务器解释,并在到达用户浏览器之前“长时间”计算。仍在服务器上的 HTML 标记只是文本。只有当 HTML 到达用户浏览器时,它才会被渲染(或被忽略!)。所以你的 HTML cmets 对服务器来说并不重要——它看到 PHP 代码并运行它——PHP 解释器没有被编程来识别你给它的这些奇怪的 &lt;!-- 符号。 ;)

【讨论】:

  • # // also a comment 在 PHP 中是 ;-)
  • @Fred-ii- GAHH...从不.../* // # Redundant much? */
  • 我自己从不使用它,但它仍然是一个评论字符 ;-) 我只在 .htaccess 使用它。
【解决方案2】:

您的 PHP 代码将始终被执行,因为它不知道您周围的 HTML 代码。

解决方案,如果您的 PHP 代码 执行,则将其注释 out

 <!--

<div class="main">
  <div class="main-sub">
<?
// php include('http://www.contractorsintelligence.com/contractors-license/includes- 
// page-elements/navigation1.php'); 
?>
<div id="mid-top"><img src="" width="990" height="20" alt="Top Spacer"/></div>
        <div id="mid_shdw">
-->

【讨论】:

  • 你的意思是把它注释掉吗?
【解决方案3】:
<?php /* comments */ ?>

在客户端处理 HTML 之前执行 PHP。

【讨论】:

    【解决方案4】:

    如果您想忽略 PHP 代码,最好这样做:

    <?php 
        /* include('http://www.contractorsintelligence.com/contractors-license/includes-page-elements/navigation1.php'); */
    ?>
    

    而 /* 开始注释并 */ 结束它。

    PHP 将在页面发送到客户端(或浏览器)之前对其进行解析。因此 PHP 对 &lt;!----&gt; 根本不“感兴趣”。

    另一方面,如果您对include() 的调用包含的HTML 代码包含进一步的HTML 注释(&lt;!----&gt;),它可能会在您想要的点之前关闭您忽略的代码。

    更新

    您的整体方法有点模糊。看这里,如果你想使用 PHP 来决定是否显示某些 HTML 代码,你不想使用 HTML cmets 来完成。

    试试这个:

    <?php 
        if($result["r_approved"] != "APPROVED"){
    ?>
    <div class="main">
        <div class="main-sub">
            <?php 
                include('http://www.contractorsintelligence.com/contractors-license/includes-page-elements/navigation1.php'); 
            ?>
        </div>
        <div id="mid-top">
            <img src="https://www.contractorsintelligence.com/images/shadowbg-top.png" width="990" height="20" alt="Top Spacer"/>
        </div>
        <div id="mid_shdw"></div>
    </div>
    <?php
        }
    ?>
    

    【讨论】:

      【解决方案5】:

      您的 php 页面已执行,&lt;? ?&gt; 之间的所有内容均已执行。 PHP 不关心 &lt;!-- --&gt; 或除 &lt;?&lt;?php 之外的任何其他标签。

      然后浏览器不会显示/加载 &lt;!-- --&gt; 中的内容。

      如果要评论php,请使用///* ... */

      <?php /* include('http://www.contractorsintelligence.com/contractors-license/includes-page-elements/navigation1.php'); */ ?>
      

      【讨论】:

        【解决方案6】:

        两件事情同时发生,我认为这可能会令人困惑:

        • 除非你用/* */ 包裹php 标签内的所有内容或使用//,否则代码将被执行,因为它来自服务器。

        • 浏览器是唯一解析&lt;!-- --&gt;的浏览器。

        所以你的服务器正在解析 php,然后浏览器隐藏了解析的内容。

        解决方案

        <?php // include('http://www.contractorsintelligence.com/contractors-license/includes-page-elements/navigation1.php'); ?>

        【讨论】:

          【解决方案7】:

          那是因为&lt;!-- 不被 PHP 解析,只能被浏览器解析。最简单(但并不总是最易读)的解决方案是

          <?php if (false) { ?>
          <b>This html will not be sent to browser</b>
          <?php include('this will not be included'); ?>
          <?php } // endif ?>
          

          【讨论】:

          • 您的示例显示 HTML 未被解析 - 但问题本身与 PHP 代码有关。
          • 我想我都展示了 (include('this will not be included'))
          • 是的 - 但您使用的是条件语句。忽略一行代码并不需要条件。至少我是这么理解这个问题的。 OP 正在寻找“注释掉”或忽略某些行的方法。在同一个文件中混合语言时会出现混乱。
          • 他要求ignore the php code with the rest。我同意这不会完全忽略代码,但有时将/* ... */ 添加到有据可查的代码部分(因此包含*/ 本身)不是一种选择,所以我提供了另一种方式。
          • 哦……我明白你的意思了……你可能想为此查看Heredocs。它涉及较少的代码操作,因此注释掉它会很好:)
          猜你喜欢
          • 1970-01-01
          • 2011-04-05
          • 1970-01-01
          • 1970-01-01
          • 2011-10-26
          • 2015-12-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多