[英]PHP and Last.fm API
我有一個JSON結構,如http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=Cher&api_key=XXXX&format=json ,我想挑選出類似藝術家的各種信息(姓名和圖像),標簽,超大圖像,內容等
我得到了類似的arists工作使用
<?php
$url = 'http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=Queens%20Of%20the%20STone%20Age&api_key=XXX&format=json';
$content = file_get_contents($url);
$json = json_decode($content, true);
foreach($json['artist']['similar']['artist'] as $item) {
print $item['name'];
print '<br>';
}
?>
但是,如何從以下內容中提取“大”圖像:
"artist": [{
"name": "Them Crooked Vultures",
"url": "http:\/\/www.last.fm\/music\/Them+Crooked+Vultures",
"image": [{
"#text": "http:\/\/userserve-ak.last.fm\/serve\/34\/38985285.jpg",
"size": "small"
}, {
"#text": "http:\/\/userserve-ak.last.fm\/serve\/64\/38985285.jpg",
"size": "medium"
}, {
"#text": "http:\/\/userserve-ak.last.fm\/serve\/126\/38985285.jpg",
"size": "large"
}]
謝謝,
JJ
全部排序! 成品: http : //www.strictlyrandl.com/artist/queens-of-the-stone-age/
您需要遍歷圖像並打印它:
foreach($json['artist']['similar']['artist'] as $item) {
print $item['name'];
print '<br>';
for ($i=0; $i < count($item['image']); $i++) {
echo $item['image'][$i]['#text']."<br>";
}
}
要僅在尺寸較大或超大時打印它們,您可以使用簡單的if
語句:
for ($i=0; $i < count($item['image']); $i++) {
echo $item['image'][$i]['#text']."<br>";
if($item['image'][$i]['size'] == 'extralarge') {
echo $item['image'][$i]['#text']."<br>";
}
}
$get = file_get_contents('http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=Cher&api_key=63692beaaf8ba794a541bca291234cd3&format=json');
$get = json_decode($get);
echo '<pre>';
//print_r($get->artist);
echo '</pre>';
echo '<strong>Artist Name = </strong>'.$get->artist->name.'<br/>
<strong>Artist mbid = </strong>'.$get->artist->mbid.'<br/>
<strong>Artist Url = </strong>'.$get->artist->url.'<br/>
<strong>Artist İmage = </strong><br/>';
foreach($get->artist->image as $image) {
$image = (array) $image;
echo 'İmage Text = '.$image['#text'].'<br />
İmage Size = '.$image['size'].'<br />';
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.