2012-12-27 133 views
0

我可以发送GET请求并在以下行接收响应。如何解析Curl响应?

$curl_resp = curl_exec($curl); 

我用下面的解析响应,但它不工作,我已经手动设置一些值$curl_resp但仍然不知道如何单独访问xml的每个变量的值。

$xml = simplexml_load_string($curl_resp); 

注:我recevice实际的XML,但不能分析它,(我需要在一个变量分别获得每个标签的价值)

代码:

<?php 

    $service_url = ' The Url goes here'; 
    $curl = curl_init($service_url); 
    $curl_post_data = array(
     "PASSWORD" => 'pass', 
     "USERNAME" => 'username' 
     ); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($curl, CURLOPT_POST, true); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data); 
    $curl_resp = curl_exec($curl); 
    curl_close($curl); 
+1

会发布你的整个代码? –

+0

是否设置了CURLOPT_RETURNTRANSFER选项? –

+0

没有足够的信息(例如:源代码),不能帮你OP。 –

回答

-1
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "your url");  
curl_setopt($ch, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.google.com/bot.html)'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$response = curl_exec($ch); 
1

如果没有设置CURLOPT_RETURNTRANSFER选项,那么您的$curl_resp将仅返回true/false

如果它被设置你可能会返回false或不良形成xml string。如果您发布更多代码或实际卷曲响应文本,我们可能会提供更多信息。

编辑:

在阅读的代码看起来像你分配响应文本到$ curl_response而不是$ curl_resp

+0

是的,这有什么区别?当我打印curl_response时,它将响应显示为字符串输出。我会重命名它,但如何访问每个标签的值!!? –

+0

你似乎使用正确的语法,但没有看到你的xml字符串我不知道是否所有的都是正确的 –

+0

有什么办法可以将响应放在类似数组的东西中,使其更容易访问吗? –

2

你的变量$curl_response$curl_resp你试图解析什么不同)

您可以像访问其他任何数组一样访问每个标记的值。

+0

@Pankit Kapadia ,我使用simplexml解析的xml是一个示例,我需要解析web服务的响应($ curl_resp) –

+0

@Pankit Kapadia **不要**添加无意义的格式 - 仅对人员帖子进行更改。这样做是滥用建议的编辑系统。 – Charles

+0

谢谢查尔斯...这些代表小编辑开始变得非常刺激。 –