Last.fm从track.getinfo获取图像

时间:2014-04-24 18:54:27

标签: php xml image simplexml last.fm

我在PHP编程方面有点新手,并且已经谷歌并试着用了几个小时来实现这一点。但是,我运气不好。希望有人可以帮助我: - )

我要做的是使用Last.FM API来获取单个轨道的封面图像。它在XML中找到图像标记时起作用,但是当它不在Last.FM的XML文件中时,PHP脚本会输出大量错误,并仍尝试在文档中插入损坏的图像。我想要做的是,如果脚本在XML中找到图像标签,它会显示图像,如果找不到,则显示一般图像。

到目前为止,这是我的代码(这里的XML文件的URL正在处理图像);

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

我已经尝试了一切,但我无法理解。有人想帮我这个吗?

1 个答案:

答案 0 :(得分:1)

您可以使用xpath查询该图像,如果没有结果,请提供默认的src值。

此外,您应该对您创建的HTML进行编码:

list($src) = $img->xpath('/*/track[1]/album[1]/image[4]')?
             :['http://example.com/path/to/default.png'];

printf('<img src="%s">', htmlspecialchars($src));