从JSON文件获取信息并将其转换为PHP字符串

时间:2017-11-18 21:56:04

标签: php json audio webfm-api

我想连接最后一个fm API并从JSON文件中提取信息。

示例文件:[Last FM API JSON File] [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"  

e.t.c

我的计划是创建字符串,然后使用php代码搜索我的数据库并显示标记列包含任何这些标记的记录。知道怎么可能吗?

[1]:http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=Ed Sheeran&amp; api_key = 63692beaaf8ba794a541bca291234cd3&amp; format = json

2 个答案:

答案 0 :(得分:0)

您可以将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);
}

答案 1 :(得分:0)

这是经过测试和运作的,是一些可能的方法之一......

$(this).find("#current_price").fadeOut("slow", function () {
    if (price > p_price) {
        $(this).css({color:"green"});
    } else {
        $(this).css({color:"red"});
    }
});