2011-05-24 16 views
1

我是新來json解碼與php。這是我的情況。我需要獲取一個非常簡單的json調用,並在我的HTML頁面上解析它。下面是JSON的內容:解碼JSON和PHP。適用於變量,而不是URL

[{"id":"793","date":"Apr. 18, 2011","title":"the cat in the hat","url":"http:\/\/www.somesite.com\/community\/blogs\/id-793"},{"id":"788","date":"Apr. 12, 2011","title":"the fox has sox","url":"http:\/\/www.somesite.com\/community\/blogs\/id-788"}] 

等等

當我繼續前進,把在一個串在我的PHP文件:

$json = [{...}] 
$arr = json_decode($json,true); 
foreach($arr as $item) { 
    echo "title: ". $item['title'] ."<br>"; 
} 

我拿到冠軍打印出來沒有問題。相反,如果我把:

$arr = json_decode("url_path_here",true); 
foreach($arr as $item) { 
    echo "title: ". $item['title'] ."<br>"; 
} 

我得到一個錯誤,「爲的foreach提供了無效的參數()」和數組簡直是空的。

在開發過程中,Feed在不同的服務器上,如果這很重要的話。我只是不確定我在這裏做錯了什麼。我正在使用PHP 5.

謝謝!

回答

8

json_decode需要一個字符串,而不是一個URL。

這可能會工作:

$arr = json_decode(file_get_contents("url_path_here"),true); 
foreach($arr as $item) { 
    echo "title: ". $item['title'] ."<br>"; 
} 
+0

哇。這是快速和正確的:) – panzhuli 2011-05-24 19:26:44

+3

只需注意:有時PHP不會被設置爲允許URL在文件功能。如果是這種情況,你可能需要使用curl來代替。 – Cfreak 2011-05-24 19:28:58

+0

感謝你的頭。如果它在目標服務器上不起作用,我會先檢查它。 – panzhuli 2011-05-24 19:30:28

3

json_decode()採取JSON解碼。如果您想從遠程服務器解碼JSON,那麼在將其提供給函數之前,您需要先將其拉下。

+0

謝謝!這解釋了它。 ceejayoz的解決方案完美運作 – panzhuli 2011-05-24 19:27:09