Deprecated: Function split() is deprecated in /var/www/web722/html/lemme.at/webcode/plugins/serendipity_event_metadesc/serendipity_event_metadesc.php on line 101

PHP Feedreader-Libraries: Zend_Feed vs. SimplePie

Ich hab mich in letzter Zeit ein wenig mit dem Zend Framework beschäftigt und bin nach kurzer zeit auch auf die PHP-Feedreader Komponente Zend_Feed gestoßen.Nach ein bisschen herumprobieren mit diversen Feeds, bin ich aber anscheinend schon an ihre Grenzen gestoßen. Das parsen von Atom-Feeds ist mir nicht gelungen, besser gesagt das extrahieren des link-Tags.Wobei ich jetzt nicht unbedingt die Schuld auf Zend_Feed schieben möchte, ich hab einfach nicht lange herumprobiert und Google hat nichts brauchbares zu dem Thema ausgespuckt.

Langer Rede kurzer Sinn, ich hab mich nach Alternativen umgesehen und bin auch sogleich fündig geworden: Eine oft empfohlene Library ist SimplePie, ein Open Source PHP Feed Reader. Der Vorteil, der sofort ins Auge sticht, ist die Fehlertoleranz und die Unterstüzung für diverse Feed-Formate. Momentan sind das (laut Website):

  • RSS 0.90
  • RSS 0.91 (Netscape)
  • RSS 0.91 (Userland)
  • RSS 0.92
  • RSS 1.0
  • RSS 2.0
  • Atom 0.3
  • Atom 1.0

Ein weiteres praktisches Feature ist das automatische Auffinden von Feeds einer Website. Man muss also nicht die genaue URL des Feeds eingeben, es reicht auch beispielsweise die Adresse eines Blogs. Das kann Zend_Feed zwar auch, macht es aber nicht automatisch (Was vielleicht auch performancetechnisch intelligenter ist, whatever).

Auch Caching der geladenen Einträge wird unterstützt, was die etwas trägere Performance etwas besser macht.

Zu guter letzt möchte ich ein kleines Beispiel bringen, um zu zeigen, wie einfach SimplePie angewandt werden kann:

<?php
require_once('simplepie/simplepie.inc');
$feed = new SimplePie('webcode.lemme.at');
$feed->handle_content_type();

if($feed->error()){
	//handle Error
}else{
	echo'<ul>';
	foreach ($feed->get_items() as $item) {
		echo '<li><ul>';
		echo '<li>'.$item->get_title().'</li>';
		echo '<li>'.$item->get_permalink().'</li>';
		echo '</ul></li>';
	}
	echo '</ul>';
}
?>

 Ich denke mal der Code ist halbwegs selbsterklärend, sollte er das nicht sein, darf natürlich in den Kommentaren gefragt werden ;-)

Trackbacks

    Keine Trackbacks

Kommentare

Ansicht der Kommentare: (Linear | Verschachtelt)

  1. Fabian Loibl schreibt:

    Geiler Post, genau das hab ich mich auch schon gefragt. Hast mir die Sucherei erspart :-)


Kommentar schreiben



Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA