Я хочу соединиться с последним API fm и получить информацию из файла JSON.
Файл примера: [Последний JSON-файл FM API] [1]
в моем php-файле я получаю правильную информацию через этот код:
<?$get = file_get_contents('http://ws.audioscrobbler.com/2.0/?
method=artist.getinfo&artist=Ed
Sheeran&api_key=63692beaaf8ba794a541bca291234cd3&format=json');
$get = json_decode($get);
foreach($get->artist->tags->tag as $tags) { $thetag = (array) $thetag;?>
<? echo $thetag['name'];?>
<?} ?>
На данный момент это будет повторять каждый отдельный тег для этого исполнителя, например: легкое прослушивание и грязь
Что мне интересно, есть ли способ создать строку, содержащую $ thetag, а также поставить запятую между ними?
$newstring = "easy listening, grime"
так далее
Мой план состоит в том, чтобы создать строку и затем использовать php-код для поиска в моей базе данных и отображения записей, где столбец тегов содержит любой из этих тегов. Есть идеи, как это возможно?
[1]: http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&художник = Ed Ширан&api_key = 63692beaaf8ba794a541bca291234cd3&Формат = JSONЭто проверено и работает и является одним из нескольких возможных методов …
<?php
$song_list_json = file_get_contents('http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=Ed Sheeran&api_key=63692beaaf8ba794a541bca291234cd3&format=json');
$song_list = json_decode($song_list_json);
$name_tags = array();
foreach ($song_list->artist->tags->tag as $tags) {
$name_tags[] = $tags->name;
}
$song_names = implode(', ',$name_tags);
// Do something with it...
echo $song_names;
Вы можете проанализировать строку JSON как массив. Тогда используйте array_map
функция для перебора $array['artist']['tags']['tag']
массив, чтобы получить только name
ценности.
// $json contains JSON string from API response to ws.audioscrobbler.com.
$array = json_decode($json, true);
$tags = '';
if (!empty($array['artist']['tags']['tag'])) {
$tags = array_map(
function($tag) {
return isset($tag['name']) ? $tag['name'] : '';
}, $array['artist']['tags']['tag']);
$tags = implode(', ', $tags);
}