解码JSON和PHP。适用于变量,而不是URL
问题描述:
我是新来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.
谢谢!
答
json_decode
需要一个字符串,而不是一个URL。
这可能会工作:
$arr = json_decode(file_get_contents("url_path_here"),true);
foreach($arr as $item) {
echo "title: ". $item['title'] ."<br>";
}
答
json_decode()
采取JSON解码。如果您想从远程服务器解码JSON,那么在将其提供给函数之前,您需要先将其拉下。
+0
谢谢!这解释了它。 ceejayoz的解决方案完美运作 – panzhuli 2011-05-24 19:27:09
哇。这是快速和正确的:) – panzhuli 2011-05-24 19:26:44
只需注意:有时PHP不会被设置为允许URL在文件功能。如果是这种情况,你可能需要使用curl来代替。 – Cfreak 2011-05-24 19:28:58
感谢你的头。如果它在目标服务器上不起作用,我会先检查它。 – panzhuli 2011-05-24 19:30:28