收到的HTTP标头错误/意外的XSL文件类型

时间:2009-07-30 10:58:52

标签: php curl http-headers

我正在使用PHP + curl来检索XSL文件,但首先我想做一些最小的验证,该文件实际上是一个XSL文件。

我确保文件存在,状态代码为200,并且文件扩展名正确,但我想检查Content-Type的标题。我使用curl_getinfo()函数执行此操作。一切都很好。

但是XSL文件总是返回“application/xml”或“text/xml”作为Content-Type,用于XML文件。我相信XSL标题应为“application/xslt+xml”。那么这里发生了什么,我怎样才能确定它是一个XSL文档?

3 个答案:

答案 0 :(得分:0)

您是否使用它来访问第三方网站或您自己配置的网站?如果它是您自己的站点,则需要根据文件扩展名设置Apache以提供适当的mime类型。

如果是第三方网站,我不确定你可以依赖mime类型,因为它们可以随心所欲地提供服务。最好的办法可能就是获取文件的前几行并检查根元素是否为xsl。

答案 1 :(得分:0)

您可以检查文件中的XSLT命名空间。 如果PHP版本> = 5.1.2,请使用SimpleXMLElement::getNamespaces()

答案 2 :(得分:0)

针对PHP 5的不同方法:

  1. 您可以尝试在XSLTProcessor中加载样式表。如果样式表不正确,可能会抛出异常
  2. (Better IMHO)Validate针对其架构的XSL样式表