(我使用的是PHP 5.2.6,phpinfo表示已加载libxml 2.6.32)
我也在使用wordpress,每当调用xml_parse()函数时,我会从结果中删除<
和>
,而不是转换为“&lt;”和“&gt;”。
我发现有人说这是一个错误,它会触及更新版本的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
答案 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()告诉你什么。总是进行双重检查。