2015-06-17 6 views
1

ARRAY: https://api.twitch.tv/kraken/search/games?q=League%20of%20Legends&type=suggestJSON массив в PHP переменной

Привет! Я пытаюсь получить значение внутри массива. То, что я пытаюсь использовать, - это крупное бокс-искусство определенной игры. Итак, как мне это сделать? Вот моя попытка, но я получаю эти ошибки.

Примечание: Попытка получить свойство не-объекта в /???/test.php на линии 4

Примечание: Попытка получить свойство не-объекта в/???/тест. PHP в строке 4

Примечание: Попытка получить имущество не-объект в /???/test.php в строке 4

<?php 
$game = urlencode($_GET['game']); // This is "League of Legends" in the URL 
$json_array = json_decode(file_get_contents('https://api.twitch.tv/kraken/search/games?q={$game}&type=suggest'), true); 
echo "IMG: ". $json_array->games[0]->box->large; // line 4 
+2

, что это код в вашей строке 4? – aizele

+0

yep, так как PHP указывает, что проблема находится в строке 4, и вы только показали 3 строки, мы должны спросить, можете ли вы показать строку 4 в своем файле :) Я также предлагаю вам дезинфицировать и гарантировать, что значение $ _GET [ «игра»] правильная. Вы можете сделать это по-разному, в зависимости от содержимого, которое требуется для этой переменной ... Например, это строка, подтверждающая, что это строка и т. Д. –

+4

Вы передали 'true' как 2-й аргумент' json_decode ', который заставляет его создавать ассоциативный массив вместо объекта. Вы хотите что-то вроде '$ json_array ['games'] [0] ['box'] ['large']'. Или просто не передайте 2-й аргумент – Phil

ответ

1

Вы должны сначала получить содержание. Раньше ты не получал контент. Ниже строки возвращается $json_array правильно.

$json_array=json_decode(file_get_contents('https://api.twitch.tv/kraken/search/games?q='.$game.'&type=suggest'), true); 

Затем измените вторую линию, как показано ниже

echo "IMG: ". $json_array['games'][0]['box']['large']; 

Так окончательный и рабочий код, как это:

$game = urlencode($_GET['game']); // This is "League of Legends" in the URL 
$json_array = json_decode(file_get_contents('https://api.twitch.tv/kraken/search/games?q='.$game.'&type=suggest'), true); 

echo "IMG: ". $json_array['games'][0]['box']['large']; 

Это абсолютно работает, я попробовал и получить

IMG: http://static-cdn.jtvnw.net/ttv-boxart/League%20of%20Legends-272x380.jpg 

как выход

0

Эта ошибка просто говорит, что $ json_array - это массив, а не объект. Вы должны получить доступ к элементу объекта с элементами -> и массивом с помощью []. Если $ json_array является массив, то вы должны получить доступ к его элементам с

$json_array['games'] 

И если $ json_array является объект, то вы должны получить доступ к его элементам с

$json_array->games 
Смежные вопросы