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