Ich beschäftige mich nun wieder etwas mehr mit dem Parsen von RSS mit PHP. Unter anderem weil ich mit dem Gedanken spiele einen RSS Aggregator für die Bikeblogs und/oder mir einen Lifestream zu bauen. Dafür eignet sich die Klasse SimplePie sehr gut. Im Gegensatz zu Magpie wird SimplePie etwas aktiver entwickelt.
hier nun mal ein kleines Beispiel, wie man die Daten aus einem RSS Feed ausliest. Wie gesagt ist das mit SimpePie recht einfach.
Nun hat man das SimplePie Objekt erstellt und kann jetzt angeben, welcher Feed geparst werden soll. Alternativ kann man die Feedurl, sowie angeben zum Cachingverhalten auch direkt im Konstruktor angeben. Ich verzichte hier aber darauf, da man bei einem Aggregator oder Lifestream mehrere RSS Dateien parsen muss, ohne jedes mal eine neues Objekt zu erstellen.
Mit der Methode init() wird der Feed nun geparst und man kann sich an das auslesen der Daten machen.So liest man zuerst die Anzahl der Elemente im Feed aus und geht alle nacheinander durch. Und schlussendlich muss man nur noch die Daten auslesen. Dies sieht so aus:
Und alles zusammen sieht dann so aus:
In der Api Reference werden alle Funktionen sehr schön und meistens mit einem Beispiel beschrieben.
hier nun mal ein kleines Beispiel, wie man die Daten aus einem RSS Feed ausliest. Wie gesagt ist das mit SimpePie recht einfach.
<?
// SimplePie einbinden
require_once("simplepie/simplepie.inc");
// Neues Objekt erstellen
$pie=new SimplePie;
?>
Nun hat man das SimplePie Objekt erstellt und kann jetzt angeben, welcher Feed geparst werden soll. Alternativ kann man die Feedurl, sowie angeben zum Cachingverhalten auch direkt im Konstruktor angeben. Ich verzichte hier aber darauf, da man bei einem Aggregator oder Lifestream mehrere RSS Dateien parsen muss, ohne jedes mal eine neues Objekt zu erstellen.
<?
// Feed Adresse setzen
$pie->set_feed_url($feed);
// Feed parsen
$pie->init();
?>
Mit der Methode init() wird der Feed nun geparst und man kann sich an das auslesen der Daten machen.
<?
// Anzahl der Elemente im Feed auslesen
$count=$pie->get_item_quantity();
// Jedes Element durchgehen
for($i=0;$i<$count;$i++)
{
// Daten auslesen
}
?>
<?
// Ein "ItemObject" erstellen
$item=$pie->get_item($i);
// Titel
$title=$item->get_title();
// Inhalt
$content=$item->get_content();
// Link
$link=$item->get_link();
// Zeit als Unix Timestamp
$time=$item->get_date("U");
?>
Und alles zusammen sieht dann so aus:
<?
// SimplePie einbinden
require_once("simplepie/simplepie.inc");
// Neues Objekt erstellen
$pie=new SimplePie;
// Feed Adresse setzen
$pie->set_feed_url($feed);
// Feed parsen
$pie->init();
// Anzahl der Elemente im Feed auslesen
$count=$pie->get_item_quantity();
// Jedes Element durchgehen
for($i=0;$i<$count;$i++)
{
// Ein "ItemObject" erstellen
$item=$pie->get_item($i);
// Titel
$title=$item->get_title();
// Inhalt
$content=$item->get_content();
// Link
$link=$item->get_link();
// Zeit als Unix Timestamp
$time=$item->get_date("U");
}
?>
In der Api Reference werden alle Funktionen sehr schön und meistens mit einem Beispiel beschrieben.