为什么W3C Validator不在HTML5中使用<! - ?php include()标签? - >

时间:2011-08-25 02:45:29

标签: php html5 validation

我试图验证一个简单的HTML5页面,它成功验证除了标记为错误的三个<?php include语句实例之外的所有内容。我无法弄清楚是什么让它不带PHP标签。为什么会这样?以下是它输出的三个错误:

Validation Output: 3 Errors

 Line 29, Column 5: Saw <?. Probable cause: Attempt to use an XML processing instruction in HTML. (XML processing instructions are not supported in HTML.)
            <?php include("inc/main-menu.php"); ?>

 Line 87, Column 9: Saw <?. Probable cause: Attempt to use an XML processing instruction in HTML. (XML processing instructions are not supported in HTML.)
        2007-<?php echo date("Y"); ?> 

 Line 94, Column 3: Saw <?. Probable cause: Attempt to use an XML processing instruction in HTML. (XML processing instructions are not supported in HTML.)
    <?php include_once("inc/analytics.php"); ?>

3 个答案:

答案 0 :(得分:12)

这些PHP标记不应出现在您的标记中。它们将写在您的代码中,但只有您的Web服务器应该看到这些 - 您的服务器生成的页面不会显示这些标记。

我猜你是在复制你的来源并粘贴到验证器中?尝试在浏览器中查看页面(假设您正在运行本地Web服务器,如Wamp或Xampp),查看源代码,然后复制并粘贴该代码,而不是直接从编辑器中进行。

答案 1 :(得分:3)

<?php在任何方言中都不是有效的HTML。 HTML解析器永远不应该看到<?php标记,因为它们是在服务器上进行评估的。因此,验证者抱怨是正确的。

答案 2 :(得分:1)

<\?php include() ?>是PHP标记,需要由PHP处理器呈现。它不是有效的HTML标记