2012-12-27 132 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

謝謝查爾斯...這些代表小編輯開始變得非常刺激。 –