php - XHTML 验证 : character "" not allowed in prolog. 为什么?

标签 php html xhtml

为什么这个页面没有通过验证?

http://www.jethroweb.nl/test/test.php

我觉得XHTML代码没问题,但是W3C Markup Validation ServiceWDG 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++ 时,我在第一行看到一个问号:

enter image description here

最佳答案

根据 W3C validator

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/

相关文章:

javascript - 我们如何通过单击菜单栏来更改 div 内容而不刷新页面

php - FullCalendar on Wordpress 集成 - wpdb 和 json 问题

html - PCDATA 和 CDATA 究竟是什么?

php - 在 Facebook 帖子中分享链接

javascript - 我应该使用 Table.cells[] 吗?

javascript - 从 &lt;script&gt; 标记中删除类型会在任何浏览器中中断吗?

javascript - 在 mouseLeave 上关闭 jQuery 菜单

css - ISO-8859-1 与 UTF-8?

javascript - 有 session 时隐藏登录链接

php - PHPStorm 中未定义的类 DateTime