Я получаю строку JSON
$url = 'https://api.twitch.tv/kraken/channels/rootkitztv/follows';
и хочу получить пользователей, у которых есть аватарка. Те, кто не возвращает как «ноль».
Вот мой сценарий
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$followers_list = curl_exec($ch);
$followers_result = json_decode($followers_list, true);
foreach ($followers_result as $data)
{
foreach ($data as $datas) {
echo ("<img src=\"".$datas['user']['logo']."\"/>");
}
}
Когда я запускаю его, я получаю все изображения, отображаемые правильно, но также и следующие ошибки …
Warning: Invalid argument supplied for foreach() in /Library/WebServer/Documents/twitch/test.php on line 27
Warning: Illegal string offset 'user' in /Library/WebServer/Documents/twitch/test.php on line 30
Warning: Illegal string offset 'logo' in /Library/WebServer/Documents/twitch/test.php on line 30
Warning: Illegal string offset 'user' in /Library/WebServer/Documents/twitch/test.php on line 30
Warning: Illegal string offset 'logo' in /Library/WebServer/Documents/twitch/test.php on line 30
и 2 изображения приходят как <img src="h"/>
на странице источника.
Я заблудился, потому что это происходит, но мне также интересно, связано ли это с тем, что некоторые логотипы являются нулевыми. Не уверен, почему я получаю эти ошибки.
Если вы пытаетесь получить логотипы, то вы хотите зацикливаться на $followers_result['follows']
только. Вы пытались перебрать "_total"
а также "_links"
также. Эти не имеют ['user']['logo']
,
foreach($followers_result['follows'] as $data){
$logo = $data['user']['logo'];
if($logo !== null){
echo '<img src="'.$logo.'"/>';
}
}
Других решений пока нет …