2017-09-13 73 views
-3

我發送的參數很少,通過使用CURL發送到URL,url應該返回XML中的結果,但是它會返回一個字符串結果。url在瀏覽器中返回XML,但不在使用cURL時

如果我複製url和我的變量並將其粘貼到瀏覽器中,它將返回所需的XML。

 $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL,$url); 
     curl_setopt($ch, CURLOPT_POST, true); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $variables); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_HEADER, false); 
     $result = curl_exec($ch); 
     $error = curl_error($ch); 
     curl_close($ch); 
     print_r($result); 

這就是我正在使用的那段代碼。我錯過了什麼嗎?

在此先感謝。

+0

沒有足夠的信息你的問題,所以我們不能重現這個問題。 – Quentin

+0

推測:您正在獲取XML,但是您正在使用默認的'text/html'內容類型從PHP中輸出它,並在瀏覽器中查看它,將所有XML標記視爲未知的HTML標記並將它們渲染爲類似跨越的方式。 – Quentin

回答

0

接招捲曲返回字符串,並把它變成一個XML對象

$xml = simplexml_load_string($result); 

SimpleXML的文檔HERE

0

嘗試添加HTTP標頭:

curl_setopt($ch, CURLOPT_HTTPHEADER, [ 
    "Content-type: text/xml;charset=\"utf-8\"", 
    "Accept: text/xml", 
]); 
相關問題