last.fm API分页

时间:2011-01-30 22:37:02

标签: php xml simplexml last.fm

我正在创建一个last.fm/谷歌地图混搭,为您搜索的任何城市绘制演出地图标记。

last.fm API响应如下:

<events location="New York" page="1" totalpages="105" total="1050">
<event>
  <id>640418</id>
  <title>Nikka Costa</title>
  <artists> etc.

目前,您可以搜索爱丁堡,例如 - 它将很快带回前10场演出。我正在使用PHP和简单的XML来返回结果。

我想添加分页 - 所以前10个演出将是第1页;我想有一个其他页面的列表,以便用户可以期待以后的演出。

有很多有用的资源用于mysql / php分页,但对动态PHP / XML和API没有那么多。什么是最好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:3)

last.fm API允许参数,包括页码。因此,您可以构建这样的请求:

http://ws.audioscrobbler.com/2.0/?method=geo.getevents&location=new+york&api_key= api key&安培;页= 2

您可以在PHP代码中使用$ _GET传递页码,并相应地更新请求URL。

$page = 1;
if (isset($_GET['lfm_pageid'])) {
    $page = $_GET['lfm_pageid'];
}

$lfm_events = new SimpleXMLElement("http://ws.audioscrobbler.com/2.0/?method=geo.getevents&location=new+york&api_key=b25b959554ed76058ac220b7b2e0a026&page=$page", NULL, TRUE);

foreach ($lfm_events->events->event as $event) {
    echo $event->title . '<br />';
}

这显然是一个非常基本的例子,没有任何GET参数的错误处理等,不要在生产中使用它。