为什么W3C验证程序不接受<;?HTML5中的php include()标记?

为什么W3C验证程序不接受<;?HTML5中的php include()标记?,php,html,validation,Php,Html,Validation,我试图验证一个简单的HTML5页面,它成功地验证了所有内容,除了三个需要由PHP处理器呈现的is PHP标记实例之外。它不是有效的HTML标记,这些PHP标记不应显示在标记中。它们将被写入您的代码中,但只有您的web服务器才能看到它们——服务器生成的页面将不会显示这些标记 我猜您是在复制源代码并粘贴到验证器中?尝试在浏览器中查看页面(假设您运行的是本地web服务器,如Wamp或Xampp),查看源代码,然后复制并粘贴代码,而不是直接从编辑器中进行复制和粘贴。您是否明确强制使用HTML5模式?在我

我试图验证一个简单的HTML5页面,它成功地验证了所有内容,除了三个需要由PHP处理器呈现的
is PHP标记实例之外。它不是有效的HTML标记,这些PHP标记不应显示在标记中。它们将被写入您的代码中,但只有您的web服务器才能看到它们——服务器生成的页面将不会显示这些标记


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

您是否明确强制使用HTML5模式?在我看来,这就像是标准的SGML解析……如果您的服务器正确设置为服务于PHP,只需将test.html重命名为test.PHP,就会导致实际执行PHP并解决此问题。我想您更大的问题是,您的服务器没有将您的页面评估为PHP。失败的HTML验证只是一个较小的症状。是的,我需要将扩展名改为.php。谢谢大家!我如何用PHP处理器呈现它?你的意思是说W3C验证器总是将带有任何PHP的页面标记为错误吗?如何使用php代码并正确验证?这意味着扩展名必须是.php,服务器需要能够呈现php。为此,需要设置服务器以呈现php。将扩展名从.html改为.phpThanks,这就是问题所在。我把它改成了.php,效果很好。这里是指向wamp和xampp的链接,以防你还没有这些链接之一:有一个指向问题中页面的链接。@John-啊,是的,打得好。我看到扩展名是.html。您可以将服务器设置为以.html格式读取PHP,但这不是标准的。尝试将扩展名更改为.php,再次确保您使用web服务器查看页面。非常感谢。出于某种原因,我认为验证器不会接受.php页面,但在重命名并输入url后,它工作得很好,并且在没有错误和警告的情况下通过(html5是实验性的)。是的,问题在于扩展。实际上,SGML和XML都支持处理指令(),这基本上是包含在“”中的任何代码。这些节点在文档对象模型中作为Node.PROCESSING_指令_节点公开,并具有自己的XPath指令。尽管建议不要在提供给浏览器的HTML中使用它们(因为有些浏览器会打印它们的内容),但我还没有看到任何规范明确禁止使用任何HTML方言的处理指令。如果你知道这样一个规范,请参考它。
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"); ?>