【问题标题】:About PHP and the xHTML5 content-type关于 PHP 和 xHTML5 内容类型
【发布时间】:2014-08-05 23:05:52
【问题描述】:

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

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

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

编辑:

代码如下:

    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>
<!-- ... -->

【问题讨论】:

  • 如何将标头设置为application/xhtml+xml?能否将代码添加到问题中?
  • 您使用的是哪个浏览器?你不想说,你还在用IE XP)?
  • Win7 SP1,在 FF 31.0、IE 11 和 Chrome 36 中测试。
  • 哎呀,看起来我打错了,这就是它无法识别代码的原因......无论如何我真的很想使用&lt;noscript&gt;标签......但是很好 - 回到text/html,xml 声明是可选的,它不会做那么多,但是 noscript 标签可以让我从禁用 JavaScript 的用户那里拯救我,所以我宁愿选择 noscript... sniff sniff 做出这样的决定有多难...我想两者兼得,但规范已被破坏,我必须遵循它。也许将来它会最终修复。
  • 我知道你的意思兄弟,我讨厌这样艰难的决定......

标签: php xml xhtml content-type xhtml-1.0-strict


【解决方案1】:

看看这个文档:

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

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

确实,这是目前采用的最大问题之一 新的 MIME 类型,特别是因为 Internet Explorer 没有 识别它(至少对于 Windows 和 6.x 以下的任何版本) 苹果系统)。当然,这是采用新的常见问题 技术,它通常会随着时间的推移而改进。

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

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

【讨论】:

  • "...最后一个 IE 6 版本被淘汰了..." 多么明智的话,不认真我真的很想最终放弃那些烦人的条件 IE cmets... 还有你所说的未来:我真的很想相信/看到它......
  • @PowerUser 去中国,让他们快点换 :D modern.ie/en-us/ie6countdown
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    • 2019-03-27
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 2013-07-05
    相关资源
    最近更新 更多