【问题标题】:Creating a PHP page that shows an image via last.fm API通过 last.fm API 创建一个显示图像的 PHP 页面
【发布时间】:2014-07-28 14:18:06
【问题描述】:

我正在尝试做一个 PHP 页面来通过 Last.FM API 显示专辑封面。但是,音乐的艺术家姓名和标题由软件通过 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”(艺术家的名字和标题的名字)与我的 XML 文件的信息提供。

你能帮我做这件事吗?

提前谢谢大家。

【问题讨论】:

  • 您是否已经在变量中拥有来自 rds.xml 的 XML 数据,或者您在问如何解析 XML?
  • 我刚刚写了我在这里发布的代码。我不知道如何解析 XML。那是我的问题。
  • 您能否举个例子说明返回的 XML 是什么,没有它,如果没有 API 密钥,我们将无法帮助您。
  • 这里是一个例子:ws.audioscrobbler.com/2.0/…

标签: php xml


【解决方案1】:

抱歉,您之前所问的内容让您感到困惑。我已经继续并纠正了做你想做的事。

您可以从 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
        }
    }

【讨论】:

  • 这不是我要找的。我需要一个 PHP 页面,根据我的 XML 文件提供的信息(summerblast.pt/avaplayer/rds.xml - 当前歌曲的艺术家和标题)显示图像(托管在 Last.FM 服务器中)。
  • 所以,图像不会每次都一样。当我的 XML 文件也发生变化时,它也会发生变化。
  • @dppires 我知道你确定你真的得到了 XML 吗?如果你做 echo( $img->asXML() );你看到 XML 了吗?
  • @dppires 抱歉没有理解你第一次问的问题,这应该符合你的要求
  • 好的!这段代码听起来比另一个更好。但是,在这里它不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-14
  • 2015-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多