1

我正在创建一个 last.fm/google maps mashup,为您搜索的任何城市绘制 gig 地图标记。

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 却没有那么多。解决这个问题的最佳方法是什么?

4

1 回答 1

3

last.fm API 允许参数,包括页码。所以你会像这样构造你的请求:

http://ws.audioscrobbler.com/2.0/?method=geo.getevents&location=new+york&api_key=api key &page=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 参数等进行任何类型的错误处理,请勿在生产中使用它。

于 2011-01-30T23:42:05.940 回答