RSS Feed bauen

Einen RSS Feed kann man kinderleicht für seine dynamische Website, zum Beispiel ein News Script, erstellen. Dafür ist nur die Kenntnis vom Aufbau einer RSS Datein plus eine einfache Datenbankabfrage notwendig. Hier wird gezeigt wie man einen solchen dynamische generierten RSS Feed manuell zusammenstellt.

Einleitung

Als Vorwissen für dieses Tutorial benötigt man Kenntnisse in php und mysql. Ziel ist es ein kleines php Script zu schreiben, das auf Basis von Daten aus einer mysql o.ä. Datenbank dynamisch einen RSS Feed generiert.

Zuerst muss man sich entscheiden auf welchen RSS Standard man zurück greifen will. Es gibt diverseste Standards, die man auch gängig bei anderen Seiten finden kann - zB. RSS0.91, RSS1.0 und RSS2.0 (mehr dazu hier). Wir werden in diesem Tutprial einen RSS2.0 Feed erstellen.

Dokument Definition

Als erstes erstellen wir in einem Editor eine leere Datei und fügen folgenden Header Code in die ersten Zeilen ein: Hier wird erstmal definiert um was für ein Dokument es sich hier eigentlich handelt bzw. die XML DTD dazu bestimmt. Die Tags "<rss>" und " <channel>" sind die Basis Element eines RSS Feeds.

Da wir einen Dynamischen RSS Feed haben wollen und die erstellende Datei eine php Script beinhaltet, muss die erste Zeile, die XML Definition, mit einem echo ausgegeben werden, da sonst der php Interpretor auf das "?" mit einem Parse Error reagiert. Weiters muss hier dem Browser der content type mitgeteilt werden, da dieser sonst den Inhalt als Html und icht als xml ausgibt. Die ganze veränderte Zeile sieht dann wie folgt aus:

Meta Daten

Nachdem wir nun die Stammelemente plus die xml Definition erstellt haben machen wir uns an die Meta Daten des Feeds. Die sehen bei RSS2.0 folgendermaßen aussehen und sind meistens statisch. Die Elemente hier sind selbsterklärend. Beim Tag "lastBuildDate" könnte man zum Beispiel mit <?php $now = time(); echo $now; ?> zur Script Laufzeit das aktuelle Datum einsetzen. <title>Website name</title>
<link>http://www.beispiel.de</link>
<description>Beschreibung von Website</description>
<language>de-de</language>
<pubDate>Datum der Erstellung</pubDate>
<lastBuildDate>Datum des letzten Outputs, in vielen Fällen die Ausführzeit des Scriptes</lastBuildDate>
<docs>http://www.beispiel.to/rss.php</docs>
<generator>Rss Feed Engine</generator>
<managingEditor>info@beispiel.de</managingEditor>
<webMaster>info@beispiel.de</webMaster>

Elemente

Nun da die Meta Elemente ausgefüllt sind ist der nächste Schritt die einzelnen News Elemente des z.B. News Scipts in RSS konforme Daten zu konvertieren. Die Struktur eines Items sieht dabei so aus. Ein Feed kann beliebig viele Items beinhalten aber es macht Sinn diese auf ca. 10-20 Elemente zu beschränken. <item>
<title>Beispiel Titel</title>
<link>http://www.beispiel.de/link</link>
<description>Beispiel Beschreibung, Text, Bilder etc. Die Description kann auch einen Excerpt (Auszug) des vollen Beitragtextes enthalten.</description>
<pubDate>Datum der Veröffentlichung des Beitrags</pubDate>
<guid>http://www.beispiel.de/link</guid>
</item>

Dieses Template eines Items füllen wir nun mittels einer Datenbank Abfrage o.ä. mit Daten. Der dazu passende Code könnte z.B. so aussehen:

Zum Schluss schließen wir noch die beiden Stammelemente channel und rss am Ende des Dokumentes. </channel>
</rss>

Um jetzt den erstellten Dynamischen RSS Feed auf der Hauptseite einzufügen und ihn für die Browser erkennbar zu machen, muss man foolgende Zeile in den Kopf der Hauptseite schreiben: <link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.beispiel.de/rss.php" />

Download der fertigen Datei: rss.php
Feedback, Vorschläge, Fragen bitte gerne an mich. Bitte Forumlar auf erich-holzbauer.at benutzen

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Austria License