为什么这个页面没有通过验证?
http://www.jethroweb.nl/test/test.php
我觉得XHTML代码没问题,但是W3C Markup Validation Service和WDG HTML Validator不一致。
更新:XHTML 代码由 PHP 生成,这是第一行代码:
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"';
echo PHP_EOL;
echo ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
echo PHP_EOL;
echo '<html xmlns="http://www.w3.org/1999/xhtml">';
echo PHP_EOL;
echo '<head>';
echo PHP_EOL;
更新 2:也许这更像是一个 PHP 问题。当我将生成的 XHTML 代码粘贴到 Notepad++ 时,我在第一行看到一个问号:
最佳答案
Byte-Order Mark found in UTF-8 File.
The Unicode Byte-Order Mark (BOM) in UTF-8 encoded files is known to cause problems for some text editors and older browsers. You may want to consider avoiding its use until it is better supported.
这就是你的错误的原因:字节顺序标记是一个零宽度的空间,它告诉你序言中不允许使用该字符(在 doctype 之前)。
使用文本编辑器重新保存文件,该编辑器允许在没有 BOM 的情况下进行保存(几乎所有内容,记事本除外)。
关于php - XHTML 验证 : character "" not allowed in prolog. 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7764464/