Frage

Ich versuche, den Last.fm-Feed meiner letzten 10 Titel auf meine Website gespielt zu analysieren.

Das ist, was ich habe, so weit,


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

}

?>

Das gibt mir im Grunde alle 10 Titel im Feed im Format

  

Linkin Park

     

In Between

     

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

Aber ich brauche die Ergebnisse in einer Liste von Links zu formatieren, wie

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

Wie würde ich verlängern mein Skript, dies zu erreichen?

War es hilfreich?

Lösung

Für die Ausgabe, verwenden Sie diese:

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

UPDATE: Wie Anzahl der analysierten Elemente begrenzen

(Als Reaktion auf den Kommentar über bearbeiten, damit ich die Code-Anzeige-Tags verwenden.)

Ich bin zur Zeit bei der Arbeit, aber ich würde versuchen, Ihren erst Parsing-Code etwas zu ändern wie folgt:

array_push($arrFeeds, $itemRSS); // existing line
if (count($arrFeeds) >= 5) { break; } // add this line
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top