关于 PHP 和 xHTML5 内容类型

About PHP and the xHTML5 content-type

提问人:PowerUser 提问时间:8/6/2014 最后编辑:PowerUser 更新时间:8/6/2014 访问量:358

问:

因此,当我在 W3C 上阅读时,我可以在文件的开头添加一个 XML 指令,如下所示:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>

但是我的文件需要是动态的,这就是我使用 .php 扩展名的原因。当然,我可以在 DOCTYPE 之前使用,但内容类型仍然存在,如果我在 PHP 标头中将其更改为 我会提示下载。我知道我只能使用内容类型,但我希望至少拥有有效的 xHTML(和 CSS)。我一直在遵循这些标准,我已经习惯了。我不会开始编写无效的 HTML/xHTML。echo '<?xml version="1.0" encoding="UTF-8" ?>';text/htmlapplication/xhtml+xml, cahrset=UTF-8text/html

编辑:

代码如下:

    header('Content-Type: application/xhtml+xml; charset=UTF-8');

编辑2:

<!-- ... -->
<noscript>
    <link href="./no-java-script.css.php" rel="stylesheet" type="text/css" media="all" />
    <meta http-equiv="refresh" content="0; url=/no-javascript.aspx" />
</noscript>
<!-- ... -->
<noscript>
    <div onload="return false;" class="no-script"><p>Sorry, your browser does not support JavaScript! Click <a href="/no-javascript.aspx" hreflang="en-US" class="show">here</a> if it doesn't redirect you automatically.</p></div>
</noscript>
<!-- ... -->
php xml 内容类型 xhtml-1.0-strict

评论

0赞 Gergo Erdosi 8/6/2014
如何将标题设置为?你能把代码添加到问题中吗?application/xhtml+xml
0赞 Christian Gollhardt 8/6/2014
您使用的是哪个浏览器?你不想说,你还在使用IE <= 6(=> XP)?
0赞 PowerUser 8/6/2014
Win7 SP1,在 FF 31.0、IE 11 和 Chrome 36 中测试。
1赞 PowerUser 8/6/2014
哎呀,看起来我打错了字,这就是为什么它无法识别代码......无论如何,我真的很想使用这个标签......但是好吧 - 回到 ,xml 声明是可选的,它不会做那么多,但该标签可以将我从禁用 JavaScript 的用户中拯救出来,所以我宁愿选择......嗅我想两者兼而有之,但规范被打破了,我必须遵循它。也许将来它最终会得到解决。<noscript>text/htmlnoscriptnoscript
1赞 8/6/2014
我知道你的意思,兄弟,当涉及到如此艰难的决定时,我讨厌它......

答:

1赞 Christian Gollhardt 8/6/2014 #1

请看一下这个文档:

http://www.webstandards.org/learn/articles/askw3c/sep2003/

但是有些浏览器不知道application/xhtml+xml。

事实上,这是采用当前最大的问题之一 的新 MIME 类型,尤其是因为 Internet Explorer 没有 识别它(至少对于 Windows 和 Mac OS)。当然,这是采用新 技术,它通常会随着时间的推移而改进。

所以是的,我们应该在几年内使用。目前这是一个坏主意,因为并非所有常用的浏览器都支持它。application/xhtml+xml

所以我的建议:在接下来的 5 年里使用。好消息是,Xp 支持结束了。也许有一天,最后一个 IE 6 版本会被取消;)text/html

评论

2赞 PowerUser 8/6/2014
"...最后一个 IE 6 版本被淘汰了......”多么明智的话,不,说真的,我真的很想最终放弃那些烦人的有条件的 IE 评论......你对未来的评价:我真的很想活着/看到它......
0赞 Christian Gollhardt 8/6/2014
@PowerUser去中国,要求他们快速改变:Dmodern.ie/en-us/ie6countdown
0赞 lxg 8/6/2014 #2

确实,当 php.ini 的值为 或(这是默认值,并且很常见)时,您必须在 PHP 中使用 XML 声明行。所以,这个一切都好。echoshort_open_tagon1

至于标题:MIME 类型可能是正确的,但是(正如您所体验的那样),某些浏览器没有设置为自己处理此类型,因此它们提供下载它。关于如何处理这个问题有很多讨论,例如 http://www.webstandards.org/learn/articles/askw3c/sep2003/ 或在你最喜欢的搜索引擎中输入“xhtml mime type”。application/xhtml+xml