January 7, 2007

[FeedCreator] RSS-Feed mit PHP

Wie kann ich meinen Besuchern Inhalte per RSS-Feed zugänglich machen?

Diese Frage stellte ich mir vor Kurzem auch. Nach etwas googeln, habe ich relativ schnell eine Antwort gefunden.

Deshalb möchte ich die Implementierung des RSS 2.0 Feeds nicht im Einzelnen beschreiben, sondern das PHP Skript hier zum herunterladen bereitstellen.
Aufbau

RSS verlangt eine bestimmte XML Struktur (siehe RSS 2.0). Die PHP Klasse setzt diese Struktur um.
Benutzung

Als Erstes muss ein neues Objekt mit den grundlegenden Informationen (Titel, URL, Beschreibung, Sprache) erstellt werden.


$feed = new FeedCreator("Feed Titel", "http://link/zum/feed", "Beschreibung des Feeds", "de-de");

Zusätzlich können noch weitere Feedinformationen hinzugefügt werden. Mehr in der API (ethalten im zip Archiv - Ordner doc).

Als nächstes werden dem Feed Artikel (Items) hinzugefügt. Das geht einfach über

$feed->addItem("Artikel Titel", "Text des Artikels", "Link zum vollständigem Artikel");

Die Länge des Textes wird standardmäßig nicht beschränkt. Die maximale Anzahl von Wörtern kann über $feed->setSize(100); angepasst werden (bevor sie addItem() benutzen).

Nun muss nur noch der RSS-Feed als XML-Datei ausgegeben werden. Das geht mit Hilfe der Funktion $feed->getXML();.
Wichtig: Vor dem Aufruf dieser Methode darf noch nichts an den Browser gesendet worden sein. D. h. keine print oder echo Ausgaben vorher.
Erweiterungen

Den einzelnen Artikeln können noch mehr Informationen beigefügt werden.
Veröffentlichungsdatum

Nützlich für den Abonnementen für die Sortierung im Feedreader. Das Format richtet sich nach RFC 2822. Nützlich erweist sich die date("r") Funktion von PHP.

addItem("Titel", "Text", "URL", "Thu, 21 Dec 2000 16:01:07 +0200");
Autor

Der Autor des Artikels.

addItem("Titel", "Text", "URL", "Thu, 21 Dec 2000 16:01:07 +0200", "autor@mail.de (Autor Name)");
Kategorie

Um dem Artikel eine Kategorie zuzuordnen, muss ein Hilfsobjekt (Category) erstellt werden. Diesem Objekt werden die Kategorien getrennt durch einen / und ein optionaler Namespace angegeben.

$categorie = new Category("Technik/PC", "http://meinedomain.de");
addItem("Titel", "Text", "URL", "", "", $category);
Anhang

Für einen Anhang gibt es auch eine Hilfsklasse (Enclosure). Diesem Objekt muss die URL des Anhangs, die Größe in Bytes und der MIME-Typ mitgeteilt werden.

$enclosure = new Enclosure("http://image.png", 1536, "image/png");
addItem("Titel", "Text", "URL", "", "", null, $enclosure);
Download

FeedCreator_0.3.zip

No comments:

Post a Comment