【发布时间】:2011-08-25 22:32:12
【问题描述】:
从我记事起,我就一直在努力以正确的方式做事。好吧,我认为无论如何都是正确的方式。
现在我觉得是时候一劳永逸地回答一些非常重要的问题了。
所有对 XHTML 发誓的人迟早会偶然发现这句话:“除非您提供正确的 MIME 类型,否则您的文档将被解释为常规 HTML”
说什么?我创建了一个完美的 XHTML 文档,遵循所有的标准和东西。我做错了什么?我错过了什么?
据我了解,它大部分是服务器的事情,所以我当然也对此进行了调查,似乎 PHP 函数 header() 是问题的答案。
是的,那么一切都很好。不,实际上不是,因为无论我在网上搜索多少,我都无法找到有关如何解决问题的一致信息,当我确实找到远程相关的东西时,这全都与浏览器的可比性等有关。
尽量说清楚。
我并不关心浏览器的可计算性。 (反正现在不是)
如果我犯了错误,我真正想要的只是接收 XML 类型的史诗失败消息,当然还有关于我如何实际做到这一点的知识。
简而言之,我想放弃 SGML 方式并拥抱 XML 方式,并且我希望能够毫无疑问地说该文档是有效的 XML/XHTML 并被解释为这样.
我的想法是,我可以通过 PHP 脚本简单地要求有问题的 XHTML 文档,并使用适当的 MIME 类型发送它,但是由于网络上的信息相互冲突,它实际上是如何完成的仍然是个谜。
我确实希望有人能够提供我正在寻找的答案,最好是提供相关信息的链接来支持它。如果你能为我做到这一点,我将永远感激不尽。
最好的问候。
编辑: 我不能说我理解为什么或如何理解,但至少我找到了一种让它发挥应有作用的方法,只需添加: 到常规 xhtml 文档的顶部,当然将文件类型更改为 PHP 以使其实际运行脚本。
我很确定这不是故事的结局,但现在我很开心。
【问题讨论】:
-
(相关) XHTML still harmful?
-
我不确定这是否有问题。您说您不担心浏览器兼容性,但浏览器决定如何解析文档以及哪些 mime 类型会改变它解析文档的方式。此外,通常由您使用的 Web 服务器来确定数据的 mime 类型(除非您通过 PHP 手动设置标头)。
-
通过 PHP 设置标题正是我想要做的,如果这是正确的方法。我个人认为这个问题很清楚。我创建了一个 XHTML 站点,却发现它没有被各种浏览器这样对待。看起来这实际上并不是所讨论浏览器的缺陷,而是文档标题、内容类型、mime 类型,无论它被称为什么。那么我该如何解决呢?
-
@Zacariaz 不,不是。无论请求什么,通过 header() 强制内容类型总是将内容作为 XHTML 提供。正确的方法是检查请求标头中的接受标头,然后查看资源是否可以像请求的那样表示(内容协商)。如果没有,服务器应该用一个错误的请求头来响应。
标签: php html xml xhtml mime-types