2011-07-07 47 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循環將數組的每個鍵傳遞到一個字符串的末尾。

然後我們得到我們想要的迴應。

道歉,我明白任何人都很難幫助,沒有例子,特別是當問題不明確時。事實證明,在你得到你想要的解決方案之前,你只需要使用這些代碼即可。

無論哪種方式非常感謝您在閱讀本文的時間。