创建一个通过last.fm API显示图像的PHP页面

时间:2014-07-28 14:18:06

标签: php xml

我正在尝试通过Last.FM API创建一个PHP页面来显示专辑封面。但是,艺术家姓名和音乐标题由软件通过FTP更新的XML文件提供。

以下是Last.FM api的代码:

<?php
$img = simplexml_load_file('http://ws.audioscrobbler.com/2.0/?method=track.getInfo&api_key=<APIKEY>&artist=cher&track=believe');
echo '<img src="';
echo $img->track[0]->album[0]->image[3];
echo '">';
?>

现在我的XML文件的链接是:http://summerblast.pt/avaplayer/rds.xml Last.FM API需要的信息是'OnAir / CurMusic'。

好吧,我要做的是在“simplexml_load_file”(在php代码中)的链接中将“Cher”和“Believe”(艺术家的名字和Title的名称)改为我的XML文件的信息提供。

你能帮我这么做吗?

提前谢谢大家。

1 个答案:

答案 0 :(得分:0)

很抱歉对你之前提出的要求感到困惑。我已经走了,并纠正做你想做的事。

您可以从rds.xml获取艺术家和标题,然后将其传递给下面列出的URL(请注意,对它们运行urlencode很重要,因为它们可以有空格和其他内容打破网址):

已更新以执行错误检查

    $xml = simplexml_load_file('http://summerblast.pt/avaplayer/rds.xml');
    $artist = urlencode($xml->OnAir->CurMusic->Artist);     
    $track =  urlencode($xml->OnAir->CurMusic->Title);
    $url = 'http://ws.audioscrobbler.com/2.0/?method=track.getInfo&api_key=XXXXXXXXXXXXXXXXXXXXXXXXXXX&artist='.$artist.'&track='.$track;
    $xml2 = @simplexml_load_file($url);
    if ($xml2 === false) 
    {
        echo("Url failed"); // do whatever you want to do
    }
    else
    {
        if($xml2->track->album->image[3])
        {
            echo '<img src="';
            echo((string) $xml2->track->album->image[3]);    
            echo '">';
        }
        else
        {
            echo("artist does not have a image"); // do whatever you want to do
        }
    }