<和>使用PHP / libxml时,将从解析结果中删除

时间:2010-10-27 08:11:52

标签: php xml parsing libxml2

(我使用的是PHP 5.2.6,phpinfo表示已加载libxml 2.6.32)

我也在使用wordpress,每当调用xml_parse()函数时,我会从结果中删除<>,而不是转换为“<”和“>”。

我发现有人说这是一个错误,它会触及更新版本的libxml,但我有旧的版本,它仍然对我很开心。奇怪的是我在基于Windows WAMP的apache服务器上设置了相同的PHP / libxml开发设备,但它不会发生在那里。

我的问题是你知道如何让xml_parse表现得如何?如何在Fedora prod服务器上升级我的libxml。 yum说我安装的libxml2是2.7.2,但就像我说phpinfo说libxml是2.6.32。如何让PHP使用更新版本的libxml?

编辑: 例如,这是我的开发服务器上的结果:

<OrderResponse ID="XXX" Signature="XXX"><Reference>XXX</Reference><URL>http://XXX</URL><ErrCode>0</ErrCode><ErrText></ErrText></OrderResponse>

这就是我在prod服务器上得到的结果:

OrderResponse ID="XXX" Signature="XXX/ReferenceURLhttp://XXX/URLErrCode0/ErrCodeErrText/ErrText/OrderResponse

1 个答案:

答案 0 :(得分:0)

让我回答我自己的问题。

实际上问题是PHP正在使用libxml 2.7.2而phpinfo()显示有关libxml的错误信息... 2.6.32版本phpinfo()错误地说明PHP已经使用的是PHP版本编译,但显然是在运行进程列表中看到的libxml 2.7.2上运行。

因此,解决方案是编译libxml 2.6.32并安装它。一旦PHP开始使用libxml 2.6.32,这个问题就消失了。

故事的重点是不要相信phpinfo()告诉你什么。总是进行双重检查。