Cully: RSS Feed aus Datenbank

Hallo,

ich habe meine Homepage über eine Datenbank aufgebaut. So werden die News bspw. per PHP aus der Datenbank ausgelesen.
Aus diesen News würde ich jetzt gerne auch automatisch einen RSS Feed erzeugen.
Was gibt es dann für Möglichkeiten? Eine PHP Seite kann ich ja nicht für Feeds angeben...

Danke schonmal für die Hilfe

  1. Moin,

    Was gibt es dann für Möglichkeiten? Eine PHP Seite kann ich ja nicht für Feeds angeben...

    Nee, ne. Mach ne XML-Seite, das geht.

    --roro

    1. Wie funktioniert das denn? Einfach den PHP Code in eine XML Datei funktioniert ja nicht - zumindest nicht bei mir...?
      Was muss ich denn machen, dass das klappt?

      Moin,

      Was gibt es dann für Möglichkeiten? Eine PHP Seite kann ich ja nicht für Feeds angeben...

      Nee, ne. Mach ne XML-Seite, das geht.

      --roro

      1. Wie funktioniert das denn? Einfach den PHP Code in eine XML Datei funktioniert ja nicht - zumindest nicht bei mir...?
        Was muss ich denn machen, dass das klappt?

        Nun, RSS-Feeds findest Du doch auch hier im Forum. Oder halt auch auf meiner Site (Vorsicht, ist bissl linksgerichtet).

        --roro

        1. Ich glaube ich abe mich etwas blöd ausgedrückt.

          Die Daten liegen in einer SQL Datenbank - die lese ich normalerweise auch mit PHP aus.
          Wie bekomme ich diese Daten denn jetzt in eine RSS/XML Datei?
          (Wie so ein Feed aufgebaut ist weiß ich, ich weiß nur nicht wie ich automatisiert die Inhalte der DB da rein bekomme)?

          Wie funktioniert das denn? Einfach den PHP Code in eine XML Datei funktioniert ja nicht - zumindest nicht bei mir...?
          Was muss ich denn machen, dass das klappt?

          Nun, RSS-Feeds findest Du doch auch hier im Forum. Oder halt auch auf meiner Site (Vorsicht, ist bissl linksgerichtet).

          --roro

  2. Hallo Cully,

    Aus diesen News würde ich jetzt gerne auch automatisch einen RSS Feed erzeugen.
    Was gibt es dann für Möglichkeiten? Eine PHP Seite kann ich ja nicht für Feeds angeben...

    Doch, kannst Du wunderbar. Eine Kurzanleitung:

    • Lese die Spezifikationen/Anleitungen für ein Feedformat, damit Du verstehst, wie eine Feed-Datei aufgebaut ist. Für das Feed-Format Atom gibt es hier eine Anleitung, für RSS 2.0 hier. Es ist im groben Ganzen relativ wurst, welches Format Du nimmt; allerdings würde ich wegen diverser Kleinigkeiten Atom vorziehen. Die meisten großen Aggregatoren können beides.

    • Erstelle zur Übung eine statische Feed-Datei, d.h. eine XML-Datei. Stell diese online und validiere diese solange mit dem Feedvalidator bis Du alle Fehler und am besten noch alle Warnungen beseitigt hast. Dies dient nur dem Verständnis des Formates. Im Idealfall hast Du schon nach dem Lesen der Specs alles richtig gemacht. Im Zweifelsfall frag einfach hier nach.

    • Erstelle ein PHP-Skript, in dem Du die Daten aus der Datenbank in passende Datenstrukturen ausliest.

    • Kopiere Deinen Beispielfeed in die PHP-Datei und nutze den als Template, ähnlich wie Du das bei HTML in PHP tun würdest. Sende mit PHP einen passendern Header, d.h. application/atom+xml für Atom oder application/rss+xml, Kümmer Dich auch um Zeichenkodierungsgeschichten, UTF-8 empfiehlt sich.

    • Validiere diese feed.php mit dem Feedvalidator so lange, bis Du alle Fehler rausbekommen hast.

    • Bonus-Aufgabe: Eigentlich ist das Template-basierte Erstellen von XML schlechter Stil, wenn man XML nur als Text behandelt kann da nicht wohlgeformtes XML draus kommen. In Spaghetti-PHP ist das Einbetten von HTML oder XML allerdings leider der bevorzugte Modus Operandi, so wie ich das mitbekomme. Bessere PHP-Applikationen erstellen den Feed aber nicht als Template-String sondern mittels XML-Methoden wie z.B. dem DOM. Dadurch erreicht man mehr Sicherheit, dass das XML auch den mit der richtigen XML-Syntax übereinstimmt. Sprich: Im Prinzip ist es besser, XML mit XML-Methoden denn als String zu erstellen; dummerweise kann es etwas mehr Arbeit sein.

    Du merkst: Mit PHP (und jeder anderen Programmiersprache) kann man nicht nur HTML, sondern auch XML ausspucken. Oder Plain Text. Du kannst also natürlich ein PHP-Skript als Feed-Resource angeben.

    Tim

    1. Hallo und erstmal vielen Dank für die ausführlichen Tips.
      Ich hatte das soweit schonmal durchgetestet - RSS Feeds generell kriege ich hin. Soweit so gut.
      Dann werde ich deine Anleitung mal weiter durcharbeiten - vielleicht komme ich so zu einer Vernünftigen Lösung - klingt zumindest alles sehr logisch ;-)

      Doch, kannst Du wunderbar. Eine Kurzanleitung:
      ...

    2. Hat alles Super funktioniert!
      Vielen Dank !!!