Как получить имя исполнителя из формы last.fm api

Я хочу получить имя исполнителя из API last.fm Вот код

$jsonData = file_get_contents('http://ws.audioscrobbler.com/2.0/?method=chart.gettoptracks&limit=56&api_key=MYAPIKEY&format=json');
            $jsonData = json_decode($jsonData, true);
foreach ($jsonData['tracks']['track'] as $track) {
                $title = $track['name'];
                $image = $track['image'][3]['#text'];
                echo '<div id="track_short"><div class="track_short">
                <a href="http://'.$SiteUrl.'/mp3-download-'.cano($title).'/" ><img src="'.$image.'" alt="'.$title.'">
                <div class="description"><p class="description_content">'.$title.'</p>
                </div></a></div></div>';
}

Пример данных API

{"tracks":{"track":[{"name":"Sorry","duration":"0","playcount":"1931615","listeners":"193074","mbid":"","url":"http://www.last.fm/music/Justin+Bieber/_/Sorry","streamable":{"#text":"0","fulltrack":"0"},"artist":{"name":"Justin Bieber","mbid":"e0140a67-e4d1-4f13-8a01-364355bee46e","url":"http://www.last.fm/music/Justin+Bieber"},"image":[{"#text":"http://img2-ak.lst.fm/i/u/34s/d5af34cbc048b190fc7369acdcf8655b.png","size":"small"},{"#text":"http://img2-ak.lst.fm/i/u/64s/d5af34cbc048b190fc7369acdcf8655b.png","size":"medium"},{"#text":"http://img2-ak.lst.fm/i/u/174s/d5af34cbc048b190fc7369acdcf8655b.png","size":"large"},{"#text":"http://img2-ak.lst.fm/i/u/300x300/d5af34cbc048b190fc7369acdcf8655b.png","size":"extralarge"}]}],"@attr":{"page":"1","perPage":"1","totalPages":"253572626","total":"253572626"}}}

person L. P.    schedule 11.03.2016    source источник


Ответы (2)


круто, спасибо, у меня правильно с: $phpArtist = $phpJson['tracks']['track'][0]['artist']; на: $Artist = $track['artist']['name']; и все работает, спасибо

person L. P.    schedule 11.03.2016
comment
Пожалуйста, не добавляйте спасибо в качестве ответа. Вместо этого вы должны принять ответ, который решил вашу проблему. Когда у вас будет достаточно репутации, вы также можете проголосовать за полезные ответы или назначить награду за полезные ответы. - person elixenide; 11.03.2016

Используя метод PHP json_decode():

$json = '{"tracks":{"track":[{"name":"Sorry","duration":"0","playcount":"1931615","listeners":"193074","mbid":"","url":"http://www.last.fm/music/Justin+Bieber/_/Sorry","streamable":{"#text":"0","fulltrack":"0"},"artist":{"name":"Justin Bieber","mbid":"e0140a67-e4d1-4f13-8a01-364355bee46e","url":"http://www.last.fm/music/Justin+Bieber"},"image":[{"#text":"http://img2-ak.lst.fm/i/u/34s/d5af34cbc048b190fc7369acdcf8655b.png","size":"small"},{"#text":"http://img2-ak.lst.fm/i/u/64s/d5af34cbc048b190fc7369acdcf8655b.png","size":"medium"},{"#text":"http://img2-ak.lst.fm/i/u/174s/d5af34cbc048b190fc7369acdcf8655b.png","size":"large"},{"#text":"http://img2-ak.lst.fm/i/u/300x300/d5af34cbc048b190fc7369acdcf8655b.png","size":"extralarge"}]}],"@attr":{"page":"1","perPage":"1","totalPages":"253572626","total":"253572626"}}}';
$phpJson = json_decode($json, true, 10); //4 is the depth of the JSON string, but you can make this a big number and it will still work
$phpArtist = $phpJson['tracks']['track'][0]['artist']['name'];

Дайте мне знать, если это сработает, или если php нужно настроить, у меня сейчас нет PHP-клиента.

person Jon    schedule 11.03.2016