我使用相同的代码片段和相同的测试网址。我的localhost和我的公共Web服务器都运行Ubuntu,它们都启用了Simplexml支持并启用了Schema支持。我的localhost运行PHP版本5.4.6-1ubuntu1.1,公共Web服务器运行PHP版本5.3.19。
生成错误的代码行是一个简单的构造函数:
$x = new SimpleXmlElement($file, NULL, TRUE);
这是一个try-catch块,因为它有一个简单的目的来验证RSS文件(具有讽刺意味的是它不起作用)。
在本地主机上没问题,在网络服务器上我收到错误
警告:SimpleXMLElement :: __ construct()[simplexmlelement .-- construct]:解析器错误:打开和结束标签不匹配:META第1行并且在......上线......
可能导致这种情况的原因是什么?
我应该注意到这个特定的RSS频道我已经用它测试过,不会在W3验证器上验证。所以我想我的问题必须是我的localhost如何使用它? (在构造函数之外,它读取的项目很好,并与它们一起使用)。
我发现过去5.3.19版本的PHP更新日志中与SimpleXml相关的唯一内容是:
实施FR#55218(从当前节点获取名称空间)。
但我不认为这与这种特殊情况有什么关系......是吗?