2017-09-13 78 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", 
]); 
相关问题