2009-07-14 44 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