Я пытаюсь получить правильность строки Json Decoded twitch tv
$hue = file_get_contents('https://api.twitch.tv/kraken/streams/?channel=starladder1'); $hue = json_decode($hue); print_r($hue->display_name);
но он не работает, попробовал почти все, пожалуйста, помогите
Попробуйте следующий код:
<?php $hue = file_get_contents('https://api.twitch.tv/kraken/streams/?channel=starladder1'); $hue1 = json_decode($hue, TRUE); foreach ($hue1 as $data) { foreach ($data as $datas) { echo ($datas['channel']['display_name']."<br/>"); } } ?>
причина, по которой он не работает, заключается в том, что вы пытаетесь получить доступ к «display_name» напрямую, не анализируя структуру объекта.
Попробуй это:
print_r($hue->streams[0]->channel->display_name);
Вы видите, что потоки начинаются с «[», что означает, что к его элементам обращаются как к массиву
Ваш объект действительно выглядит так, и это поможет вам лучше понять структуру:
{ "streams":[{ "_id":10954982848, "game":"Dota 2", "viewers":11918, "_links":{ "self":"https://api.twitch.tv/kraken/streams/starladder1" }, "preview":{ "small":"http://img.ruphp.com/php/404_preview-80x50.jpg", "medium":"http://img.ruphp.com/php/404_preview-320x200.jpg", "large":"http://img.ruphp.com/php/404_preview-640x400.jpg", "template":"http://static-cdn.jtvnw.net/previews-ttv/live_user_starladder1-{width}x{height}.jpg" }, "channel":{ "_links":{ "self":"http://api.twitch.tv/kraken/channels/starladder1", "follows":"http://api.twitch.tv/kraken/channels/starladder1/follows", "commercial":"http://api.twitch.tv/kraken/channels/starladder1/commercial", "stream_key":"http://api.twitch.tv/kraken/channels/starladder1/stream_key", "chat":"http://api.twitch.tv/kraken/chat/starladder1", "features":"http://api.twitch.tv/kraken/channels/starladder1/features", "subscriptions":"http://api.twitch.tv/kraken/channels/starladder1/subscriptions", "editors":"http://api.twitch.tv/kraken/channels/starladder1/editors", "videos":"http://api.twitch.tv/kraken/channels/starladder1/videos", "teams":"http://api.twitch.tv/kraken/channels/starladder1/teams" }, "background":null, "banner":null, "display_name":"starladder1", "game":"Dota 2", "logo":"http://img.ruphp.com/php/starladder1-profile_image-557367f831a49ebb-300x300.png", "mature":false, "status":"NewBee vs LGD-Gaming 1:0 @ WEC Lan-Finals Day 2 by v1lat", "url":"http://www.twitch.tv/starladder1", "video_banner":"http://img.ruphp.com/php/starladder1-channel_offline_image-c29311bb34830472-640x360.jpg", "_id":28633177, "name":"starladder1", "created_at":"2012-03-01T18:05:14Z", "updated_at":"2014-09-06T06:59:23Z", "abuse_reported":null, "delay":0, "followers":118574, "profile_banner":null, "profile_banner_background_color":null, "views":186419614,"language":"en" } }], "_total":1, "_links":{ "self":"https://api.twitch.tv/kraken/streams?channel=starladder1&limit=25&offset=0", "next":"https://api.twitch.tv/kraken/streams?channel=starladder1&limit=25&offset=25", "featured":"https://api.twitch.tv/kraken/streams/featured", "summary":"https://api.twitch.tv/kraken/streams/summary", "followed":"https://api.twitch.tv/kraken/streams/followed" } }
Вот код для вас:
$hue = json_decode(file_get_contents('https://api.twitch.tv/kraken/channels/starladder1')); echo "Name :" .$hue->display_name;
Вы просто делаете неправильный URL-адрес для извлечения