Расшифруйте JSON и php.Работает с переменной, а не как URL - PullRequest
1 голос
/ 24 мая 2011

Я новичок в json декодировании с php. вот моя ситуация Мне нужно захватить очень простой вызов json и проанализировать его на моей HTML-странице. Вот содержимое этого json:

[{"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 ()", и массив просто пуст.

Фид находится на другом сервере во время разработки, если это имеет значение. Я просто не уверен, что я делаю не так здесь. Я использую PHP 5.

Спасибо!

Ответы [ 2 ]

8 голосов
/ 24 мая 2011

json_decode принимает строку, а не URL.

Это, вероятно, будет работать:

$arr = json_decode(file_get_contents("url_path_here"),true);
foreach($arr as $item) {
    echo "title: ". $item['title'] ."<br>"; 
}
3 голосов
/ 24 мая 2011

json_decode() принимает JSON для декодирования.Если вы хотите декодировать JSON с удаленного сервера, вам нужно сначала снять его, прежде чем передать функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...