Eigener RSS-Feed mit PHP

Du hast sicher schon einmal etwas von RSS Feeds gehört, oder? Wenn das nicht der Fall sein sollte, so erklärt dieser Artikel die Thematik für dich.

Kurz zusammengefasst: Bei den RSS-Feeds handelt es sich um ein populäres, auf XML-basierendes Format, mit dessen Hilfe Inhalte abonniert werden können.

So kann beispielsweise eine Webseite unter feed.xml einen eigenen RSS-Feed anbieten. Sobald ein neuer Artikel veröffentlicht wird, wird diese Datei neu beschrieben, sodass sie auch den neuen Artikel enthält.

Die Leser tragen diese URL einmalig in ihren Feedreader ein. Anschließend wird die URL regelmäßig abgefragt und neue Inhalte werden importiert.

Auf dieser Seite erfährst du, wie du mit PHP einen eigenen RSS-Feed erstellen kannst. Das ist insbesondere für die interessant, die ein eigens entwickeltes Content Management System nutzen, sodass ihre Webseite noch über keinen RSS-Feed verfügt.

Download: RSS-Klasse (PHP)

Download Button
PHP-RSS-Klasse downloaden

Ich habe gerade eine kleine PHP-Klasse geschrieben (Name: „RSS“). Mit dieser und wenigen PHP-Funktionen kannst du dann dann eigenen Feed erstellen.

Die Datei RSS.class.php ist die eigentlich wichtige Datei. Diese musst du auf der Seite einbinden, wo der RSS-Feed neu generiert werden soll. Dazu im Folgenden mehr.

rss_example.php arbeitet mit dieser PHP-Klasse und enthält einen Beispiel-Code. Wenn du beide Dateien auf deinen Webspace lädst, in einen Ordner, der beschrieben werden kann und die rss_example.php im Browser aufrufst, wird direkt ein Bespiel-Feed generiert und in der feed.xml gespeichert.

Hinweis: Du darfst diese PHP-Klasse ohne Hinweis auf deiner Webseite frei nutzen und bearbeiten. Bitte lösche jedoch, solltest du die Dateien weitergeben wollen, nicht die PHP-Kommentare, damit auch andere Nutzer verstehen, was diese Klasse tut.

Du hast die Dateien gedownloadet und die PHP-Klasse auf deinen Webspace übertragen?

So geht’s: RSS-Datei erstellen

Gut, dann kommen wir jetzt zum Einbau. Zunächst solltest Du dir überlegen, wann Du die Datei aktualisieren möchtest. Du kannst das entweder über einen Cronjob, zum Beispiel einmal am Tag machen oder immer dann wenn neue Inhalte erstellt werden.

In beiden Fällen benötigst Du die RSS.class.php. Dort, wo du sie einsetzen möchtest, musst du sie entsprechend einbinden:

require_once 'RSS.class.php';

Beachte dabei, dass Du den korrekten Pfad angibst, von der Datei, diesen Code enthält, zu der RSS-Klasse. Eventuell sieht das dann bei dir so aus:

require_once '/php/classes/RSS.class.php';

Sobald ein neuer Feed erstellt werden soll, musst du dem Skript die entsprechenden Daten über deine Webseite mitteilen. Also Titel, URL, Beschreibung, Sprache und eventuell auch der Zeitpunkt an dem sie zuletzt aktualisiert wurde:

$rss = new RSS('Meine Webseite', 'http://meine-webseite.de', 'Beschreibung meiner Webseite', 'de', 1391270457);

Die unterschiedlichen Parameter sollten fast alle selbsterklärend sein. Solltest du einmal nicht wissen, welche Parameter tatsächlich benötigt werden, kannst Du auch in der RSS-Klasse nachschauen. In diesem Fall könntest Du auch nur den Titel und die URL übergeben.

Der vorletzte Parameter steht übrigens für die Sprache und der letzte gibt den Unix Timestamp für das Datum an, an dem deine Internetseite zuletzt aktualisiert wurde.

Nun musst die einzelnen Einträge, also zum Beispiel deine Artikel hinzufügen. Das kann etwa mit einer Schleife und einem Auslesen aus der Datenbank geschehen, jeden einzelnen Eintrag fügst du dann wie folgt hinzu:

$rss -> addEntry('Titel des Artikels', 'http://meine-webseite.de/artikel-link/', 'Inhalt des Artikels...', 1391270457);

Du kannst als 3. Parameter entweder eine kurze Beschreibung angeben oder aber den kompletten Inhalt des Artikels. Der 4. Parameter enthält wieder einen Unix Timestamp, der das Datum angibt, an dem der Artikel veröffentlicht wurde.

addEntry() rufst du so oft auf, bis alle gewünschten Einträge (am besten nur die 10-20 neuesten) hinzugefügt wurden.

Anschließend nutzt du Output() um den RSS-Feed entweder in einer Datei zu speichern:

$rss -> Output('feed.xml');

oder um den Inhalt zurückzugeben und dann z.B. per echo auszugeben:

echo $rss -> Output();

Mit dieser PHP-Klasse kannst Du also ganz einfach deinen eigenen RSS-Feed für deine Internetseite erstellen.

Ein Gedanke zu „Eigener RSS-Feed mit PHP“