Zur Navigation

rss datei über php aktualisieren

xml file mit php öffnen, text suchen ersetzen, datei speichern

1 Steve (Gast)

Hallo Leute,

ich hab nach langer Zeit mal wieder eine Frage.

Ich möchte einen Feed auf meiner Seite bereitstellen.

Die xml Datei habe ich bereits fertig und bevor ich an Ihr rumbastelte funktionierte es auch schon :) das ist also nicht das Problem.

Meine Wissenslücke besteht schlichtweg darin, das ich es nicht hinbekomme diese xml datei mit php zu öffnen, und Inhalte per php hinein zu schreiben.

Statt das ganze immer in der Textdatei zu pflegen, möchte ich die topics in einer Datenbank pflegen. Ich möchte also automatisiert ein script laufen lassen, dass dann von Zeit zu Zeit immer wieder die aktuellsten Inhalte in die xml Datei pumpt.

Ich habe verschiedenste codeschnipsel gesucht und gefunden, aber irgendwo scheitert es bisher immer.

Könnte mir einer von Euch netterweise ein wenig code posten um mich auf den richtigen Weg zu bringen ?

07.08.2009 02:19

2 Jörg Kruse

Du musst sicherstellen, dass das PHP geparst wird, z.B. indem die Datei die Endung .php erhält.

07.08.2009 09:08

3 Steve (Gast)

Hi Joerg,

dessen bin ich mir bewusst.

Ich hab folgendes Konstrukt gebastelt :

Ich habe eine xml Datei, quasi meine Feed Datei

Ich habe eine php datei. Diese möchte ich nun durch aufruf dazu veranlassen, aus einer Tabelle dies aktuellsten Feeds auszulesen, dann die xml datei zu öffnen.
Und dann diesen Feed dort abzulegen.

momentan habe ich noch zwei Probleme bei der ganzen Geschichte :

1)
am sinnvollsten würde ich es finden, wenn ich es so machen kann, dass ich eine xml datei habe, welche einmal die Standarddaten enthält
(sagen wir mal die rss.xml) - Diese soll nur die standarddaten quasi den header enthalten.

Dann per xml eine neue datei includen, welche dann die eigentlichen Feeds enthält.
und abschließend quasi noch ein footer.xml der dann die den feed schließt.
wäre das so machbar?
Quasi so wie mit php include nur eben halt xml style.
In die xml datei wo dann die Feedinhalte sprich die <items> drin sind, könnte ich dann durch das php file Datenbankinhalte auslesen und dann per append an diese Datei anhängen.

08.08.2009 13:52

4 Jörg Kruse

Quasi so wie mit php include nur eben halt xml style.

Was meinst du mit "xml style" - dass man mit XML eine andere Datei includen kann? XML ist eine Auszeichnungssprache, so wie XHTML, keine Scriptsprache.

Includen kannst du aber ja in PHP - wobei dies in diesem Fall nicht eimal notwendig ist. Du kannst das XML ganz einfach in einer PHP-Datei ausgeben lassen, so wie man auch eine HTML-Seite in PHP ausgeben lassen kann. An den Anfang schreibst du den "Header", dann nach einem "<?php" kannst du in PHP den Mittelteil ausgeben und nach einem "?>" schreibst du das Ende der XML-Seite.

Der Feed erhält dann den Namen xml.php, damit das PHP ausgeführt wird. Damit der Feedreader weiß, dass es sich bei der .php Seite um einen Feed handelt, sollte bei einem RSS-Feed noch diese Zeile ganz an den Anfang der PHP-Datei eingefügt werden:

<?php header('Content-Type: application/rss+xml; charset=UTF-8') ?>

Bei einem Atom-Feed muss die Zeile so ausschauen:

<?php header('Content-Type: application/atom+xml; charset=UTF-8') ?>

Wenn dir die Endung .php optisch nicht gefällt, kannst du sie noch per Modrewrite ändern - so wie das auch bei dem Feed dieses Forums der Fall ist - auch dieser wird eigentlich per PHP ausgegeben.

08.08.2009 19:45 | geändert: 08.08.2009 19:48

5 Steve (Gast)

Hi Joerg,

also das mit dem include geht wohl auch in xml dateien. Da gehts dann über !ENTITY etc.

Ich hab das jetzt aber lösen können.

Ich lese jetzt halt die Inhalte aus einer Datenbank und laß php die Datei komplett neu schreiben.

Geht wunderbar und ist für meine Zwecke absolut optimal..

08.08.2009 21:57

6 Jörg Kruse

also das mit dem include geht wohl auch in xml dateien. Da gehts dann über !ENTITY etc.

OK, das ist eine Anweisung an den XML-Parser, externe XML-Daten zu integrieren. Ich halte es aber für fraglich, ob die gängigen Feedreader so eine Integration überhaupt beherrschen? Abgesehen davon schiene mir ein solches Vorgenen auch nicht besonders sinnvoll: die Daten werden auf verschiedene Dateien verteilt, die vom Parser clientseitig erst noch zusammengestellt werden müssen. Die Items des Feeds müssen aber so oder so serverseitig erstellt werden - und da kann man sie auch gleich in einer einzelnen XML-Datei ausgeben.

Ich hab das jetzt aber lösen können.

Ich lese jetzt halt die Inhalte aus einer Datenbank und laß php die Datei komplett neu schreiben.

Geht wunderbar und ist für meine Zwecke absolut optimal..

Das ist denke ich auch der gängige Weg :)

08.08.2009 22:21

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]