yubb.de-Logo
Tutorials
yubb@yubb
yubbService
Inside yubb

RSS Feed selbstgemacht



Yahoo! versuchte es populärer zu machen, indem - falls vorhanden - ein RSS Newsfeed zur entsprechenden Webseite angezeigt wird.

Zuerst einmal die Basics: Eine RSS Datei kann/muss eine XML Datei sein. Die einzige Möglichkeit, die ich kenne, um einen RSS Newsfeed mit Inhalt aus einer MySQL Datenbank zu aktualisieren, ist die XML bzw. RSS Datei jedes Mal neu zu schreiben. Dies geschieht mit der Funktion fwrite(). Jedoch müssen wir zuerst einmal eine Verbindung zu der Datei herstellen. Dies geht mit fopen(). Hinterher muss die Datei mit fclose() wieder geschlossen werden.

Das Script würde dann so aussehen:
PHP-Datei:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
/* CONFIG BEGIN */
/* RSS-Teil */
$config['datei'] = 'deine_datei.xml'// Name der Datei
$config['zeilen'] = 10// Anzahl an Zeilen, die in die RSS Datei sollen
$config['title'] = 'Überschrift des RSS-Feeds'// Überschrift des RSS Feeds
$config['desc'] = 'Beschreibung deiner Seite'// Beschreibung der Seite
$config['url'] = 'http://www.deineseite.de'// URL deiner Homepage
$config['copyright'] = '2004 Deine-Seite'// Copyright des RSS Feeds
/* MySQL-Teil */
$mysql['host'] = 'localhost'// MySQL Host
$mysql['user'] = 'root'// MySQL User
$mysql['passwort'] = '<strong>*</strong>*'// MySQL Passwort
$mysql['tabelle'] = 'news'// Tabelle aus der der Inhalt bezogen werden soll
$mysql['query'] = 'SELECT * FROM '.$mysql['tabelle'].' ORDER BY ID DESC LIMIT '.$config['zeilen']; // ggf. den MySQL Query anpassen
/* CONFIG ENDE */

/* Verbindung zur MySQL Datenbank aufbauen */
@mysql_connect($mysql['host'], $mysql['user'], $mysql['passwort']) or die('Verbindung zum MySQL Server kann nicht aufgebaut werden');
@
mysql_select_db($mysql['db']) or die('Datenbank kann nicht selektiert werden');

/* Der Header der Datei */
$xmlheader '<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="0.91">
<channel>
<title>'
.$config['title'].'</title>
<link>'
.$config['url'].'</link>
<description>'
.$config['desc'].'</description>
<language>de-de</language>
<copyright>'
.$config['copyright'].'</copyright>';

/* der Footer der Datei */
$xmlfooter '</channel>
</rss>'
;

/* Datei öffnen */
if(!$fp fopen($config['datei'], w))
  die(
'Datei kann nicht geöffnet werden!');

/* den Header in die Datei schreiben */
fwrite($fp$xmlheader);

/* die MySQL Infos in den RSS Feed schreiben */
$query mysql_query($mysql['query']);
while(
$row mysql_fetch_array($queryMYSQL_ASSOC)) {
  
/* ab hier wieder anpassen */
  
$item '<item>'
  
.'<title>'.$row['newstitel'].'</title>' // Titel der News o.ä.
  
.'<description>'.$row['content'].'</description>' // Beschreibung / Inhalt der News o.ä.
  
.'<link></link>' // Link zur News o.ä.
  
.'</item>';
  
/* Ende der Anpassungen */
  
fwrite($fp$item);
  unset(
$item);
}
/* den Footer der Datei schreiben */
fwrite($fp$xmlfooter);
/* Die Verbindung zur Datei schließen */
fclose($fp);
?>


Um so einen Newsfeed lesen zu können, braucht man einen RSS Reader, wie zum Beispiel Feedreader. Die Stiftung y-Test hat diesen exklusiv getestet.

PS: die XML Datei muss erstellt werden mit dem CHMOD 777 (nur unter Linux), falls der Ordner den CHMOD 777 haben sollte, wird die Datei beim ersten aufruf automatisch erstellt.

Geschrieben von michi am 18.06.2004 (7914x gelesen)
weiterempfehlen weiterempfehlen   Druckversion Druckversion   kommentieren kommentieren

möp!

brauchbar :D

sogar sehr :D
Geschrieben von firebear
Endlich mal einer der sich an den Coding-Standard hält...



sonst ganz gutes tut :)



mfG, LCD
Geschrieben von LLCoolDannY
waren ein paar fehler drinne, sollen jetzt aber behoben sein ;D
Geschrieben von michi
Ich habs ganz anders gelöst, mein Code ist unter http://pasteme.yubb.de/43 zu finden.
Geschrieben von Phil Marx
Wäre praktisch wenn jemand das Tut auf die rss2.0er Version erweitern würde =)
Geschrieben von Carnage