2012-08-11 149 views
0

我連接到通過電子商務應用程序的命令行中執行以下操作:檢索捲曲信息json_decode

curl -u xxxxxx: https://xxxx/xxx 

它返回是這樣的:

{ "charge_enabled": true, 
    "details_submitted": true, 
    "email": "[email protected]", 
    "id": "xxxx", 
    "statement_descriptor": "xxxx", 
    "xxxx": [ "USD" ] 
} 

當我改變這PHP來在腳本中運行此操作,我也可以通過以下方法檢索相同的信息:

$ch = curl_init('https://xxxx/xxxx'); 
$options = array(  
    CURLOPT_USERPWD=> $xxxxxx 
    ); 
    curl_setopt_array($ch, $options); 
    $result2= curl_exec($ch); 

但是,當我嘗試檢索電子郵件等個人信息,我無法這樣做。我試着通過json_decode這樣做如下:

$parsedresult = json_decode($result2,true); 
$emailretrieve = $parsedresult["email"]; 

此只返回一個數字1,而不是電子郵件地址。

任何人都可以幫助並告訴我什麼是錯的嗎?我嘗試了很多已經發布在StackOverflow上的東西,但沒有一個能夠工作。

+0

你能說明'$ result2'包含了什麼嗎? 'print_r($ parsedresult)'給你什麼? – 2012-08-11 15:08:39

+0

回聲調試總是很好地工作:'var_dump($ result2,$ parsedresult,$ emailretrieve);' - 你會得到什麼? – Shi 2012-08-11 15:09:59

+0

$ result2自動打印出以下內容,不需要我回應:{「charge_enabled」:true,「details_submitted」:true,「email」:「[email protected]」,「id」:「xxxx」,「statement_descriptor」 :「xxxx」,「xxxx」:[「USD」]}。 print_r($ parsedresult)返回數字1.它打印出1. – Nochbag 2012-08-11 15:13:20

回答

2

您應該設置選項CURLOPT_RETURNTRANSFER(在http://php.net/curl_exec中提到)來獲取結果。現在,你只會得到「成功」或「失敗」的結果。

+0

謝謝你的工作! – Nochbag 2012-08-11 15:27:11

+2

@Nochbag:你看到我們如何分析問題並追蹤它?有問題的var_dump()變量並問自己:「該值有意義嗎?是否有預期?」如果您以「否」回答,請打開手冊並開始閱讀。哦,如果你自己接受了答案,請在Stack Overflow上也這樣做。謝謝。 – Shi 2012-08-11 15:33:15

+1

@Nochbag不接受此答案的任何特定原因?只有當他人知道什麼是有效的,什麼沒有成功時,其他人才會覺得有幫助。 – 2012-08-11 18:05:52