HTML仍在使用<!---->读取PHP代码

时间:2013-12-02 22:32:32

标签: php html

我有以下问题。我在我的页面中使用了以下代码来忽略一些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代码不会被忽略。我知道其中一种方法是将<!--包含在php函数中。但有没有其他方法可以忽略PHP代码与其余的HTML代码?

7 个答案:

答案 0 :(得分:13)

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

您应该使用PHP comments

阻止评论:

/*
BLOCK OF COMMENTED CODE
*/

行评论:

// this is a commented line

PHP代码由服务器解释,并在到达用户浏览器之前“长”计算。仍然在服务器上的HTML标记只是文本。只有当HTML到达用户浏览器时才会呈现(或忽略!)。因此,您的HTML注释与服务器无关 - 它看到了PHP代码并运行它 - PHP解释器没有编程识别您提供的这些奇怪的<!--符号。 ;)

答案 1 :(得分:5)

您的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">
-->

答案 2 :(得分:4)

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

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

然而/ *开始评论而* /结束它。

PHP会在将页面发送到客户端(或浏览器)之前对其进行解析。因此,PHP不感兴趣&#39;完全在<!---->

另一方面,如果您对include()的调用所包含的HTML代码包含更多HTML评论(<!---->),则可能会在之前关闭您忽略的代码指出你想要它。

<强>更新

你的整体方法有点模糊。如果您想使用PHP来决定是否显示某些HTML代码,请参阅此处,您不希望使用HTML注释来实现这一点。

请改为尝试:

<?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
    }
?>

答案 3 :(得分:4)

<?php /* comments */ ?>

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

答案 4 :(得分:2)

执行php页面,执行<? ?>之间的所有内容。 Php不关心<!-- -->或除<?<?php之外的任何其他标记。

然后浏览器不会显示/加载<!-- -->内的内容。

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

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

答案 5 :(得分:1)

有两件事情一下子发生,我认为这可能令人困惑:

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

  • 浏览器是唯一一个解析<!-- -->的人。

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

<强>解决方案

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

答案 6 :(得分:1)

这是因为PHP不会解析<!--,只能由浏览器解析。

是最简单(但并非总是最易读)的解决方案
<?php if (false) { ?>
<b>This html will not be sent to browser</b>
<?php include('this will not be included'); ?>
<?php } // endif ?>