2009-07-14 80 views
1

我想解析我的网站上播放的最后10首曲目的Last.fm饲料。解析Last.fm饲料到网站上使用PHP

这是我到目前为止,


<?php 

    $doc = new DOMDocument(); 
    $doc->load('http://ws.audioscrobbler.com/1.0/user/nathanjmassey/recenttracks.xml'); 
    $arrFeeds = array(); 
    foreach ($doc->getElementsByTagName('track') as $node) { 
     $itemRSS = array ( 
      'artist' => $node->getElementsByTagName('artist')->item(0)->nodeValue, 
      'name' => $node->getElementsByTagName('name')->item(0)->nodeValue, 
      'url' => $node->getElementsByTagName('url')->item(0)->nodeValue, 
      ); 
     array_push($arrFeeds, $itemRSS); 
    } 

?> 

<?php 

foreach ($arrFeeds as $i => $values) { 

    foreach ($values as $key => $value) { 
     print "<p>$value\n</p>"; 
    } 

} 

?> 

这基本上给我的格式在饲料中所有10首曲目,

Linkin Park

在这两者之间

http://www.last.fm/music/Linkin+Park/_/In+Between

但我需要的链接,如清单格式化结果,

<a href="$url">$artist - $track</a> 

我怎么会延长我的脚本来实现这一目标?

+2

只是一个提示,如果你想使用更多的Last.fm功能,他们提供了PHP API;) – usoban 2009-07-14 16:25:28

回答

2

为输出,使用此:

<? 
foreach ($arrFeeds as $i => $values) 
{ 
    print "<a href='" . $values['url'] . "'>" . $values['artist'] . " - " . $values['name'] . "</a>"; 
} 
?> 

UPDATE:如何限制#解析的项目

(通过编辑回应评论,所以我可以用代码显示标签。 )

我现在在工作,但我会尝试更改您的初始解析代码,如下所示:

array_push($arrFeeds, $itemRSS); // existing line 
if (count($arrFeeds) >= 5) { break; } // add this line 
+0

这太棒了。快速跟进问题,我如何限制解析到网站上的项目数量为5? – 2009-07-14 11:10:51