Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Rss Feeds erstellen Antworten
Rss Feeds erstellen

Agent
Quasselstrippe


Beiträge: 312


Hallo zusammen,

ich setze mich gerade mit RSS/XML - Feeds auseinander.
Ziel: Ich möchte einen Feed zur Verfügung stellen.

Theoretisch, speicher ich einfach eine korrekt formatierte XML-Datei ab, und gut ists.
Ich moechte aber eine PHP zur Verfügung stellen, die quasi on-the-fly z.B. dinge aus einer Datenbank ausliest, und XML zurückgibt.

Ansatz:
1: 
2: 
3:
<?php header("Content-type: text/xml"); 
echo '<'.'?xml version="1.0" encoding="ISO-8859-1"?'.'>'; ?>

wenn ich darunter (ausserhalb von <?php ?>) nun XML-Tags mache (channel,title etc) klappt das soweit auch.

Wenn ich innerhalb der Tags nun wieder php verwenden möchte
1: 
2: 
3:
<title><?php php echo $link; ?></title> 

kotz das script das die xml ausliest und ausgibt.
Also:
script1.php liest eine vorgegebene XML aus und gibt sie aus: klappt.
script2.php liest aus der DB aus, erzeugt XML (inkl. Header) und gibt XML aus: klappt

script1 liest statt einer XML einfach script2 ein (das ja XML ausgibt): klappt nicht.

Wo mach ich den generellen Denkfehler?

Vielleciht kann mir jemand da noch ein paar warme Worte zu sagen...

TIA

Agent



---
Wie soll ich wissen was ich denke, bevor ich höre was ich sage?

  Profil   Website   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


<?php php echo $link; ?>


Das zweite php ist zuviel ....

---
Weaverslave

  Profil   Website   Editieren   Zitieren

Philipp Gérard
Foren-Team


Beiträge: 1508


Kurzform: <?=$link;?>

---
Arbeit ist das Feuer der Gestaltung. - Marx

  Profil   E-Mail   Website   Editieren   Zitieren

Agent
Quasselstrippe


Beiträge: 312


Hey,

ja, das zweite php ist natürlich quatsch, es geht aber auch so nicht.
Die kurzform ist irrelevant. (mal davon abgesehen das "short_open_tags = off" ist)

Wenns nicht geht, gehts auch mit der kurzform nicht.

Das bringt mich leider alles NULL weiter.....

Gruß,

Agent

---
Wie soll ich wissen was ich denke, bevor ich höre was ich sage?

  Profil   Website   Editieren   Zitieren

Agent
Quasselstrippe


Beiträge: 312


Ich habs.. fast...:

Das Problem ist das die class die die xml-datei einliest und formatiert ausgibt, die xml-datei per fread öffnet, und sie dann wohl nicht geparsed wird.

Kann mir das jemand bestätigen?

Der übliche weg wäre wohl auch, per cron oder ähnlichem ein script anzuschupsen, das dann wieder eine aktuellere XML-datei erzeugt (physikalisch). Ich glaub ich bin der einzige auf der Welt der das "on-the-fly" machen will.

Curl wäre wohl eine Alternative aber ich glaub ich denk da nochmal drüber nach und geh dann ganz anders ran.

Das war für alle die es interessiert

Gruß,

Agent

---
Wie soll ich wissen was ich denke, bevor ich höre was ich sage?

  Profil   Website   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Du bist nicht der einzige der das "on-the-fly" machen will - im Gegenteil. Recht viele RSS-Feeds werden dynamisch von Sripten erstellt.

Wenn du die Datei lokal öffnest, wird der PHP-Interpiler natürlich nicht angesprochen - also kein PHP ausgeführt. Der Aufruf muss über den Webserver erfolgen - entweder einfach per fopen() aus http://... (automagischer Wrapper von PHP) oder über fsockopen.

Beispiel

---
Weaverslave

  Profil   Website   Editieren   Zitieren

Agent
Quasselstrippe


Beiträge: 312


Dein Beispiel ist ne php die dynamisch sauberes XML ausgibt.
Soweit bin ich schon...

Die Class die ich zum auslesen einer XML nehme oeffnet die XML per fread und dementsprechend wirds nich richtig geparsed. Mal gucken ob ich das per fsockopen oder fopen hinbekomme......

Klingt auf jedenfall als könnte es das sein was ich suche

---
Wie soll ich wissen was ich denke, bevor ich höre was ich sage?

  Profil   Website   Editieren   Zitieren

Agent
Quasselstrippe


Beiträge: 312


Tatsächlich !

Wenn ich statt fopoen($datei) einfach fopen(http://...$datei) mache, dann gehts !!!!

Das wars schon !

Da wär ich nie im leben drauf gekommen. Erst dann ist das ein http-request, erst dann wird die geparsed, liefert sauberes XML zurück und das wiederum kann verarbeitet werden.

Tausend Dank, subjective!

(Hätte nicht gedacht das es im endeffekt doch so einfach wird...)

Gruß,

Agent

---
Wie soll ich wissen was ich denke, bevor ich höre was ich sage?

  Profil   Website   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Klar - wenn du über das lokale Dateisystem eine Datei öffnest wird der Webserver gar nicht angesprochen. Also ruft der Webserver auch den PHP-Interpiler nicht auf. Die Datei wird einfach direkt geöffnet.

---
Weaverslave

Diese Nachricht wurde geändert von: subjective
  Profil   Website   Editieren   Zitieren

fuji04
Pixelschubser


Beiträge: 1


@subjective:
Könntest du mir den source deines beispiels verraten???

  Profil   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


nöö

Das ist ein komplettes CMS (papaya CMS). Die RDF-Ausgabe ist nur ein kleiner Teil davon. Ohne den Rest läuft jedoch auch dieser Teil nicht (Datenbankabstraktion, XML-Abstraktion, XSLT-Templates).

---
Weaverslave

  Profil   Website   Editieren   Zitieren
 

Antworten
Nach oben