Viele Webseitenbetreiber bieten einen sog. RSS-Feed als Infokanal, den man mit seinem Browser abonnieren kann. Diese Schlagzeilen oder Info's kann man jedoch auch auf seine eigene Website einbinden um seinen Besuchern einen zusätzlichen Service anzubieten.
Was brauche ich?
1. Einen RSS-Parser, der die Daten ausliesst und vorab aufbereitet. Zum Beispiel:
http://magpierss.sourceforge.net
2. PHP ab der Version 4.2 auf dem eigenen Webspace
3. Einen RSS-Feed den man einbinden möchte. Diese sind häufig nach dem Muster http://
www.einedomain.de/feedname.xml aufgebaut.
Wie komme ich an solch einen RSS-Feed?
Einfach mal in folgenden Verzeichnissen nach einem News-Feed suchen. Diese sind nach Kategorien aufgebaut. Zum Beispiel Sport, Nachrichten, Internet usw.
www.rss-scout.de
www.rss-verzeichnis.de
www.rss-nachrichten.de
www.xmlfeeds.de
www.web-feed.de
www.all4rss.com
www.rss-katalog.com
www.feedster.com
Vorbereitung auf dem eigenem Webspace:
Habt ihr Euch den magpie Parser downgeloadet, kopiert ihr folgende Dateien in das Verseichnis wo auch die HTML-Datei liegt wo ihr den NewsFeed einbauen wollt. Bsp. soll es die Startseite (index.html) sein, kopiert die "
rss_fetch.inc", "
rss-parser.inc", "
rss-cache.inc" und "
rss-utils.inc" in das Hauptverzeichnis. Weiterhin das Verzeichnis
/extlib mit der darin enthaltenen Datei
Snoopy.class.inc übernehmen.
Das Script versucht automatisch noch ein Verzeichnis
/cache anzulegen. Sicherheitshalber einfach dieses anlegen und die Rechte auf chmod(775) setzen.
Script in die Website einbauen:
Den folgenden php Code einfach an die Stelle der HTML-Datei setzen, wo der News-Feed erscheinen soll. Anschließend muss die Datei aber mit der Endung php abgespeichert werden (bei der Startseite wäre dies z.B.
index.php)
PHP-Code:
<?php
define('MAGPIE_CACHE_DIR', 'cache');
define('MAGPIE_CACHE_AGE', '600');
require_once('rss_fetch.inc');
$url = 'http://www.tagesschau.de/newsticker.rdf';
if ( $url ) {
$num_items = 10;
$rss = fetch_rss( $url );
$items = array_slice($rss->items, 0,$num_items);
echo $rss->channel['title'];}
echo "<ul id='feed'>";
foreach ($items as $item) {
$href = $item['link'];
$title = $item['title'];
echo "<li><a href=$href target='_blank'>$title</a></li>";}
echo "</ul>";
?>
Im Beispielcode habe ich mir den News-Feed von der ARD - Tagesschau ausgesucht. Unter der Variablen $url müsst ihr daher die http Adresse eintragen.
Der definierte Cache dient zur Entlastung des Quellservers und die Zahl 600 ist die Zeit in Sek. wie auf neue Nachrichten abgefragt wird. Mit $num_items = 10; wird die Zahl der einzulesenden Schlagzeilen auf 10 beschränkt. Wer nur 5 möchte schreibt somit $num_items =
5;
Anschließend werden die Schlagzeilen über den normalen ul tag in Listenform auf der Website ausgegeben. Das Standard html Listenelement ist ein einfacher kleiner Kreis. Den kann man mit den üblichen css Befehlen über die id="feed" formatieren, z.B. eine kleine Grafik zuweisen.
Und wie sieht das jetzt aus?
Ich habs mal auf einer
monsterhaften Seite eingebaut. Guckst du bei der Überschrift
News Top10
Wichtig: Nicht jeden RSS-Feed darf man einbauen. Der Beispiel-Feed von der
ARD - Tagesschau darf für nichtkommerzielle Seiten benutzt werden, jedoch mit der Auflage das keine Ansicht in Frames erfolgt. Daher target='_blank' im obigen php Code benutzt, bewirkt die Ansicht im neuen Browserfenster. Weiterhin muss die Quelle benannt wierden. Falls derartige Hinweise nicht auf der jeweiligen Anbieterseite vorhanden sind im Zweifelsfall per netter E-Mail nachfragen.
Viel Spaß beim Nachbauen...!