Was ist ein RSS-Newsfeed? Wie RSS-Newsfeeds selbst erstellen?
Wie RSS-Newsfeeds selbst erstellen?▽
Inhalt
RSS
Was ist RSS?
Mit sog. RSS-Feeds kann man automatische Update-Benachrichtigungen komfortabel ein- und ausschalten, ohne erst umständlich unter Herausgabe einer E-Mail-Adresse einen Newsletter bestellen zu müssen.
Voraussetzung ist ein Feedreader. Ich persönlich bevorzuge derzeit den Google Reader, um unabhängig von jedem einzelnen Computer besonders bequem, schnell und einfach alle Nachrichten z.B. auch unterwegs mit dem Smartphone (Handy) oder Tablet lesen zu können. Ein Feedreader ist auch in den aktuellen Browsern wie Opera, Firefox und dem Internet Explorer ab Version 7 enthalten. Man braucht dann (zumindest bei Opera) einfach nur noch auf die RSS-Datei bzw. auf das blaue RSS-Icon in der Adresszeile zu klicken und erhält fortan die Neuigkeiten aller Auserwählten gemeinsam in einer Art E-Mail-Programm. Auch Firefox zeigt ein (orangefarbenes) Icon in der Adresszeile an, mit dem man die Feeds auf 1 Klick abonnieren kann. Unter den Lesezeichen findet man dann allerdings nur die Titel, für die Inhalte muss man sich wahrscheinlich eine Erweiterung suchen und installieren.
Diese Newsfeeds sind äußerst praktisch, denn in Webseiten erscheinen zurzeit bei vielen interessanten Themen zunehmend mehr Neuigkeiten als in den Newsgroups: Diese werden leider in großem Umfang auch zum Plaudern u.ä. missbraucht, sodass vielen kompetenten Teilnehmern die Zeit fehlt oder zu schade ist, sie ständig durchzuarbeiten, und daher bevorzugt auch in ihren eigenen Seiten, oft sog. Weblogs, kurz Blogs, veröffentlichen. Mit RSS-Feeds können Webseiten daher eine sehr gute Ergänzung zum Usenet sein, wenn man auf dem Laufenden bleiben möchte.
Bei uns gibt es derzeit nur Feeds für die komplette Website, sollte es vom Ausmaß her erforderlich werden, liefern wir später zusätzlich für einzelne Themen oder sogar einzelne Seiten.
Wie RSS-Newsfeed selbst erstellen? Allgemein und speziell bei 1&1 puretec
1. Die RSS-Datei
RSS ist ein Spezialfall von XML, also nichts als Text mit (je nach Version unterschiedlichen) festgelegten Tags. RSS 0.91 ist einfacher, RSS 2.0 hat zusätzliche Tags, praktisch ist z.B. das Veröffentlichungsdatum.
Einen RSS-Newsfeed kann man daher auch manuell mit einem Texteditor erstellen, einfach als *.xml
abspeichern, hochladen und fertig:
<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
<channel>
<title>Name der Homepage</title>
<link>http://www.meine-domain.de</link>
<description>Beschreibung der Website</description>
<language>de-de</language>
<copyright>2006 by Max Mustermann</copyright>
<item>
<title>Titel des Artikels/ggf. Datum</title>
<description>z.B. Vorspann </description>
<link>http://www.meine-domain.de/verzeichnis/artikelname</link>
</item>
</channel>
</rss>
Wichtig: Für die Kodierung utf-8
muss die Datei mit einem Editor gespeichert werden, der das schon beherrscht, z.B. UltraEdit, weil dazu eine BOM in die Datei geschrieben wird, um dem Browser das Encoding mitzuteilen. Anschließend kann man sie auch mit Notepad bearbeiten. Ansonsten schreibt man statt utf-8
jeweils einfach noch das frühere iso-8859-1
, damit es keine Probleme mit den Umlauten gibt.
2. PHP in XML
Nun möchte man natürlich normalerweise innerhalb der Datei PHP-Code ausführen lassen, dazu ergänzt man
in der .htaccess
anschließend noch eine der beiden folgenden Zeilen, wodurch auch *.xml
geparst wird:
AddType x-mapp-php4 .xml (z.B. bei 1&1puretec) oder auch
AddType application/x-httpd-php .xml
3. Parse-Error durch Short Open Tags
Meist gibt es dann erst einmal eine Fehlermeldung: In PHP ist short_open_tag=On
leider voreingestellt, sodass <?xml
für PHP gehalten wird.
Abhilfe : in der .htaccess
php_flag short_open_tag Off
Wenn das nicht funktioniert (z.B. bei 1&1puretec) erstellt man eine Textdatei, speichert sie als php.ini und lädt sie in das Verzeichnis hoch, in dem das Skript liegt (z.B. bei 1und1 puretec) oder auch in das Hauptverzeichnis (Root): Einziger Eintrag
short_open_tag = Off
Alternativ hilft außerdem der Workaround "echo '<?xml ....';
".
Danke Christian Rauch, Joerg Behrens u.a. für die Hilfe dazu»!
4. Content-Type und Charset (Zeichensatz bzw. Kodierung/Encoding) richtig senden
Zumindest bei den aktuellen Browsern wie Firefox und Opera funktioniert das bereits, auch wenn auf diese Weise Content-Type und Charset im HTTP Header und in der XML-Datei nicht übereinstimmen.
Abhilfe durch folgende .htaccess
-Direktiven, die man
vor die oben genannte zum Parsen von XML einträgt:
AddCharset iso-8859-15 .xml
AddType application/rss+xml .xml
oder direkt in der RSS-Datei
<?php header("Content-type: application/rss+xml; charset: utf-8"); ?>
Wichtig: Die header
-Funktion immer ganz an den Anfang, nicht mal ein Leerzeichen o.ä. darf davor stehen!
Bei 1&1puretec funktioniert bei uns im Augenblick offenbar beides nicht. Die Funktion header()
führt zur Browsermeldung: "Warning: Cannot modify header information - headers already sent" (und zwar auch, wenn kein Leerzeichen o.ä. davor steht).
Abhilfe: Einträge in der eigenen php.ini im Verzeichnis, in dem das Skript liegt, die an der Stelle die globale php.ini überschreiben:
default_mimetype = "application/rss+xml"
default_charset = "utf-8"
URL ohne Dateierweiterung einrichten
Es empfielt sich, schließlich in der .htaccess
noch eine interne Umschreibung einzurichten, z.B. damit man den Dateinamen jederzeit ändern kann, ohne die Benutzer zu beeinträchtigen. Etwa falls sich später das Format Atom statt RSS durchsetzt. Der Link heißt dann statt www.meine-domain.de/feed/rss2.xml besser www.meine-domain.de/feed
RewriteRule ^feed/(.*)$ feed/rss2.xml
Weiterführende externe Links
- Google Reader» google.de/reader/
Besonders bequem, schnell und einfach: Alle Nachrichten *unabhängig vom Computer* lesen, z.B. auch unterwegs mit dem Smartphone (Handy) oder Tablet, sodass man seine Zeit sinnvoller nutzen kann (Wartezimmer beim Arzt usw.). Online-Dienste haben gegenüber Software ("Apps") den weiteren großen Vorteil, dass man sich nicht mehr um die lästigen Updates kümmern muss, und normalerweise nicht einmal um die Datensicherung.
- Was ist RSS?» de.wikipedia.org
- Was ist RSS?» about-rss.de, mit Liste kostenloser separater Feedreader
- Wie RSS korrekt ausliefern?» notizen.joergkrusesweb.de
- Wie RSS *und* ATOM korrekt ausliefern?» itst.net