我正在尝试使用http://validator.w3.org/check处的W3C验证程序验证我的HTML5文档。当我使用“直接输入”运行下面的代码时,我收到错误消息,例如元素头缺少必需的子元素标题和 Stray开始标记html 。这让我感到困惑,因为<html>
标签就在那里。为什么验证者不能看到它?
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="description" content="some content">
<title>page title</title>
</head>
<body>
</body>
</html>
更新:我正在使用PHP生成部分文件,结果证明这是错误的原因。
答案 0 :(得分:2)
我发现了错误。我使用PHP生成页面。当我在十六进制编辑器中查看它时,我在标记之前发现了两个空字节(十六进制代码0x00)。我的第一个<?php ?>
标签正好在哪里。当我复制代码或通过URL运行代码时,验证器遇到空字节。当我手动编写代码时,它验证正常。
<!DOCTYPE html>
<?php
/* the PHP tag apparently outputs two null bytes */
?>
<html>
<head>
<title>page title</title>
</head>
<body>page body</body>
</html>
我将第一个PHP标记移动到正文的第一行并验证通过。
答案 1 :(得分:1)
它没有给出错误,而不是两个警告,我已经检查了同一个链接。