2017-01-05 98 views
-1

我試圖通過捲曲用PHP這樣來解碼JSON obtening:如何從捲曲得到JSON用PHP

$url = 'https://www.toto.com/api/v1/ads/?apikey=titi&code_postal='.$code_postal.'&type_de_bois='.$type_bois; 
$cURL = curl_init(); 
curl_setopt($cURL, CURLOPT_URL, $url); 
curl_setopt($cURL, CURLOPT_HTTPGET, true); 
curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json', 
    'Accept: application/json' 
)); 

$result = curl_exec($cURL); 
curl_close($cURL); 

var_dump(json_decode($result, true)); 
echo json_decode($result); 

返回我說,這東西好像是JSON:

[{「id」:「6918」,「nom」:「X」,「code_postal」:「88120」,「ville」:「town」,「description」:「test」,「logo」:「test .png「,」url「:」test「,」telephone「:true}, [{」id「:」6919「,」nom「:」Y「,」code_postal「:」88121「,」ville「 「town1」,「description」:「test」,「logo」:「test.png」,「url」:「test」,「telephone」:true}, [{「id」:「6920」,「nom 「:」 Z 「 」code_postal「:」 88122「,」ville「:」town2「,」description「:」test「,」logo「:」test.png「,」url「:」test「,」telephone「:true}]

int 1)1

我的問題是: - 爲什麼沒有回顯或打印,陣列打印? - 爲什麼json_decode不能正常工作或爲什麼只有一個值(「1」)?

非常感謝您的回答。

+0

var_dump()將顯示數組中的結果 – Kalaivanan

回答

2

您忘記使用CURLOPT_RETURNTRANSFER選項。因此,curl_exec()打印了響應,而不是將其返回到$result,而$result只包含TRUE,該值由curl_exec返回以指示它已成功。添加:

curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true); 
+0

它完美的工作!非常感謝! –

0

看起來像json數據編碼兩次,如果使用一次json_decode()後,結果是一個json字符串。

請檢查:

echo json_decode(json_decode($result)); 

如果它不會工作,你能提供的

echo $result; 

應對看到PHP解析非服務器響應。