2012-03-06 41 views
0

我不明白爲什麼這會給我NULL當我var_dump可能我做錯了referrer部分。json和php的問題

$url = "https://ajax.googleapis.com/ajax/services/feed/find?v=1.0&q=cricket"; 
    $ref = $_SERVER['HTTP_REFERER']; 
    //echo $ref; 
    // sendRequest 
    // note how referer is set manually 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_REFERER, $ref); 
    $body = curl_exec($ch); 
    curl_close($ch); 

    // now, process the JSON string 
    //utf8_encode($body); 
    $json = json_decode($body); 
    var_dump($json); 
+1

'$ body'變量是什麼? – hsz 2012-03-06 13:37:05

+2

適合我。您是否嘗試將$ url直接粘貼到瀏覽器中並檢查您是否獲取了數據? – 2012-03-06 13:38:20

+0

同樣在這裏。完全按照發布的順序排列,沒有問題。你運行的是哪個版本的PHP? – 2012-03-06 13:47:36

回答

0

PHP中的JSON解析器非常嚴格。使用json_last_error()去獲取更多的信息爲什麼解碼失敗。

如果您的JSON編碼爲UTF-8,請確保沒有字節順序標記(BOM)。解析器不適用於BOM,因爲少數人在php.net處報告過。

+0

我做了以下,它沒有返回錯誤......現在我該怎麼辦爲什麼它不解碼? – Paradox 2012-03-06 13:56:41

+0

使用最新的PHP版本,它正確編碼檢查它對json_last_error()它沒有給出錯誤.....現在我應該如何解碼它? – Paradox 2012-03-06 13:59:45

+0

我剛剛在我的PHP環境中嘗試過您的腳本,並且無需修改即可完美運行。你有防火牆阻止傳出的HTTPS連接嗎? – CodeZombie 2012-03-06 20:20:35