2013-01-07 90 views
3

搜索結果後,在代碼上實現代碼後,仍然無法顯示任何內容。沒有。不是一件事。使用PHP解析URL中的JSON

我有一個URL吐出JSON:

{"videos":[{"video":{"name":"Sanyo Zio","youtube":"FxxLDr--R5A","post_date":"2010-10-08 01:00:00",... 

這裏是我用來訪問頁面的代碼:

$url = file_get_contents("http://[website]/json/test.json"); 

$arr = json_decode($url,true); 

現在,這裏的什麼我試圖短名單從該頁面訪問任何數據:

1:

print_r($arr); 

2:

foreach($arr['videos']['video'] as $item) { 
    echo "Name: ". $item[0] ."<br>"; 
} 

3:

$obj = $arr[0]; 
echo $obj; 

4:

foreach($arr as $a){ 
    echo "Name: ".$a['videos']['video']['name']."<br />"; 
} 

顯然我失去了一些東西,但我一直沒能找出什麼我做錯了!我的編碼不正確?以下是我如何編碼JSON開始:

$arr = array('videos' => array()); 
foreach($vid as $items){ 
    $arr['videos'][] = array('video' => array(
    'name' => $items['videoName'], 'youtube' => $items['youtubeID'], 'post_date' => $items['productionTimestamp'], 'description' => $items['videoDesc'], 'link' => $single_linker_values['deeplink'], 'image' => $image)); 
} 
echo json_encode($arr); 

任何想法/建議嗎?


更新 - 顯然服務器被鎖定,但是在室內我沒有注意到:)很明顯,網頁沒有!謝謝您的幫助!返回

+0

的URL進行解碼?你嘗試過'var_dump()'嗎? – 2013-01-07 15:53:48

+0

那麼'print_r($ arr);'顯示什麼?這裏有什麼問題? –

+2

'var_dump($ url);'在嘗試解析任何內容之前,看看你是否確實有響應。 – MrCode

回答

1

From PHP Manual

NULL,如果JSON不能被解碼或者如果編碼數據 比遞歸限制

既然你不指定遞歸限制較深,有機會,無論您的JSON是無效的還是沒有任何內容正在從您的網址中檢索。

三件事嘗試:

  • 確定是否有一個json_decode錯誤

    print_r(json_last_error()); // call after json_decode

  • 檢查正在被返回的數據

    print_r($url);

  • 看看數據將作爲一個對象

    $obj = json_decode($url);

    print_r($obj);

+0

print_r(json_last_error());吐出一個0. print_r($ url);吐出什麼。 – cfox

+1

所以有這個問題,$ url是空的,意思是'file_get_contents(「http:// [website] /json/test.json」);'不檢索任何東西。你能提供完整的網址,我們可以檢查嗎? – PassKit

+0

我已將URL添加到我原來的問題中。 – cfox