PHP Blogger

Startseite Schreib mir ne Mail! RSS Abo Webnews

RSS Feeds mit PHP generieren

RSS IconsWer seiner Applikation ein RSS Feed hinzufügen möchte, hat die Qual der Wahl: Es gibt zahlreiche RSS Feed Generatoren, Standalone oder fest in ein Framework eingepasst.

Dazu kommt die Format-Problematik: Man kann zu allem Übel auch noch zwischen etlichen Formaten wählen. Aber welches RSS Format am häufigsten eingesetzt wird, haben wir ja zum Glück schon ein paar Artikel zuvor geklärt…

Aber wie baut man nun ein ordentliches RSS Feed zusammen?

Prinzipiell sind RSS Feeds XML Dokumente, die in verschiedenen Tags Details zu einem Artikel abbilden. Basisinformationen sind unter anderem Datum, Autor, Titel, Beschreibung und Deeplink. Je nach Format kann es auch noch andere Zusatzinformationen beinhalten.

Wer sich formatsicher durch diesen Feed-Dschungel bewegen und valides XML ausliefern möchte, ist gut beraten, wenn er auf die Klasse FeedCreator setzt. Wie die Anbindung aussieht? Nachfolgend eine kurze Einführung:

Zu erst instanziiert man das Feed-Objekt und füllt die Werte wie Titel, Beschreibung und URLs:

$rss = new UniversalFeedCreator();
$rss->title= "PHP Blogger Hotnews";
$rss->description= "Der frische PHP Blog";
$rss->link= "http://www.phpblogger.net/";
$rss->syndicationURL= "http://www.phpblogger.net/feed";

In einer Schleife geht man die News-Elemente durch, die ins Feed sollen und setzt dort Autor, Titel, Beschreibung, Deeplink und Datum des Posts:

$item= new FeedItem();
$item->title= "Mein Artikel";
$item->link= "http://www.phpblogger.net/artikel.html";
$item->description= "Blablabla";
$item->source= "http://www.phpblogger.net";
$item->author= "info@phpblogger.net";
$item->date= date("U", strtotime("09.10.2007"));

Wer Umlaute in Titel, Beschreibung und Autor verwendet, sollte die UTF-8 Kodierung im Hinterkopf behalten - das Feed wird mit UTF-8 Content Header rausgeschickt. Mit utf8_encode kann man aber ganz schnell ISO Strings umwandeln… Jetzt gilt es nur noch, den Artikel ans Feed zu hängen:

$rss->addItem($item);

Zum Schluss noch das Feed ausgeben - fertig:

$rss->outputFeed("ATOM1.0");

Welches Format als Parameter übergeben wird, liegt in der Bewertung des Programmierers - folgende Formate sind möglich:

  • RSS0.91
  • RSS1.0
  • RSS2.0
  • MBOX
  • OPML
  • ATOM
  • ATOM1.0
  • ATOM0.3
  • PIE0.1 (veraltet)

Statt das Feed direkt rauszuschicken, kann man es auch auf die Festplatte cachen - Am besten mal in die mitgelieferten Beispieldateien schauen… Nicht ganz so schön ist bei dieser Klasse, das man direkt in die Member-Attribute schreibt.

  • MisterWong
  • del.icio.us
  • Technorati
  • Digg
  • Slashdot
  • YahooMyWeb
  • Furl
  • Ma.gnolia
  • Spurl
  • Netscape
  • StumbleUpon
  • MyShare
  • blogmarks

Schreib Deine Meinung