RSS Feed selbstgemacht
RSS ist die Zukunft, auch wenn es im Moment wenig populär ist. Im folgenden Tutorial möchte michi euch erklären, wie man sich so einen Feed macht
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($query, MYSQL_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 (5807x gelesen)

möp!
brauchbar :D
sogar sehr :D
Endlich mal einer der sich an den Coding-Standard hält...
sonst ganz gutes tut :)
mfG, LCD
waren ein paar fehler drinne, sollen jetzt aber behoben sein ;D
Wäre praktisch wenn jemand das Tut auf die rss2.0er Version erweitern würde =)