我發送一個GET
請求到服務器使用curl並取回json數據。當我在瀏覽器中打印這些數據時,我可以看到沒有斜槓的正確的json結構(關閉了魔術引號) - 完全沒有問題。
即使我複製粘貼這個json數據從瀏覽器到另一個php文件中的變量,然後嘗試解碼它可以正常工作。數據在該文件中被解碼。
但是,當我嘗試解碼數據時,從cURL請求中獲取數據失敗。所有返回是:數組
cURL調用後json_decode不工作
這裏是我嘗試:
$resp = curl_exec($curl);
$d=json_decode($resp,true);
我不知道爲什麼會這樣怪異的行爲? 我已經試過幾乎在這個線程json_decode returns NULL after webservice call
提到的一切,我也已經檢測到使用mb_detect_encoding
由捲曲調用返回的字符串的編碼,這是UTF-8
這件事情讓我發瘋了...
更新:好的......看來json_decode已經解碼了數據並返回了$ d變量,但是我無法訪問數組中的元素。我使用print_r來查看數組的結構。這是有點LIK這樣的:
Array ( [response] => Array ( [start] => 0 [docs] => Array ( [0] => Array ( [id] => S132250037010452 [slno] => 452 ) ) [numFound] => 1 ) )
當我嘗試使用訪問元素ID:
echo $d[response][docs][0][id];
我得到一個通知,說明:使用未定義的常量回應 - 假設「迴應'在那一行上。這是什麼意思??
那你對你的設置'curl_setopt'?如果你'var_dump($ resp)'它顯示了什麼? – Javad
確定一些進展.....我能夠看到使用print_r的數組結構,這意味着json被解碼,但仍然無法訪問元素 – Alok