2009-07-14 7 views
1

J'essaie d'analyser le flux Last.fm de mes 10 dernières pistes jouées sur mon site.Parsing Last.fm feed sur le site Web en utilisant PHP

C'est ce que j'ai jusqu'à présent,


<?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>"; 
    } 

} 

?> 

Cela me donne essentiellement les 10 pistes dans l'alimentation au format,

Linkin Park

In Between

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

Mais je dois formater les résultats dans la liste des liens tels que,

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

Comment puis-je prolonger mon script pour y parvenir?

+2

Juste un indice, si vous voulez utiliser plus de fonctions Last.fm, ils ont fourni API PHP;) – usoban

Répondre

2

Pour votre sortie, utilisez ceci:

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

MISE À JOUR: Comment limiter Nombre d'éléments analysable

(Répondre au commentaire par modifier je peux utiliser les balises d'affichage du code.)

Je suis au travail en ce moment, mais je vais essayer de changer votre code d'analyse syntaxique initiale quelque chose comme ceci:

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

C'est génial. Question de suivi rapide, comment pourrais-je limiter la quantité d'éléments analysés sur le site pour dire 5? –

+0

Cette ligne supplémentaire a parfaitement fonctionné. Merci pour l'aide. –