2011-07-07 48 views
0

我正在将PHP中的XML标记和数据字符串发送到期望XML的另一个服务器上的API。curl命令行返回的格式不正确的XML

我们通过命令行发送的字符串这样

exec("curl http://addressToAPI.com/index.php?xml=$xml", $response); 

$ XML的标记和pringoperties被发送到API的字符串。

API将字符串处理为XML罚款并返回响应。但是,包含返回的成功或失败xml的$ response会作为不包含任何XML标记的数组发回。

不幸的是,我们将数据作为字符串发送,因为服务器运行的PHP 4.3.9没有domxml扩展名,也没有安装PHP curl。我们无法在另一台服务器上运行它,并且由于运行其他软件,我们无法升级服务器。因为我们需要使用这个API,我们认为我们可以将XML作为一个字符串发送(这看起来工作正常),但是它返回的响应不会以字符串或xml的形式返回。

我们知道API服务器在记录每个请求时正在返回XML,我们可以在其日志中看到输入文档和返回的响应。

不知何故,似乎命令行卷曲正在改变XML响应到一个没有标签的数组。

我希望这是有道理的。有谁知道获取XML响应,以便我们可以成功检索数据。

+0

没有看到返回的数据和您期望的相应样本,没有人可以开始计算出结果。您如何知道服务器首先生成正确的输出?你有没有通过其他方式进行验证? –

回答

0

我们想出了一个解决方案。我仍然不确定为什么返回的响应是一个数组rathan只是一个字符串,但设法让它包含数组元素中的标签。然后,我们使用foreach循环将数组的每个键传递到一个字符串的末尾。

然后我们得到我们想要的回应。

道歉,我明白任何人都很难帮助,没有例子,特别是当问题不明确时。事实证明,在你得到你想要的解决方案之前,你只需要使用这些代码即可。

无论哪种方式非常感谢您在阅读本文的时间。