[PHP/RSS] RSS-Feed auslesen und abspeichern...

BartTheDevil89

Devilution Media
ID: 87739
L
2 Mai 2006
3.960
103
Hallo,

ich möchte mich an ein Thema heranwagen mit dem ich leider bisher noch 0 Erfahrung habe. Daher auch dieser Thread um zu versuchen das Thema zu verstehen.
Es handelt sich um diesen Feed hier, bzw. diese Infos: https://www.golem.de/0402/29672.html

Ziel des ganzen soll es sein einfach alle neu eingetragenen Newsin Abständen auszulesen und dann in einer Datenbank mit Titel, Inhalt, Zeit und Kategorie abzuspeichern.

Jetzt aber kommen die Probleme. Denn mit RSS selbst hab ich leider noch nie gearbeitet. Das erste was ich jetzt überprüfen wollte ist, ob überhaupt alle 4 Infos übertragen werden. Dabei ja aber schon das PRoblem, dass diese RSS-Feeds, wenn ich sie anklicke ja mehr einer html-Datei gleichen als allem anderen. Bei einer xml-Datei zum Beispiel war das ja ohne Probleme möglich, aber hier finde ich nichtmal Infos über die Daten.
Auch google konnte mir da nicht viel helfen, weshalb ich eben euch um Hilfe bitte.

Meine Frage: 1. Wie finde ich heraus, ob die Daten übergeben werden.
2. Wie kann ich jeden Eintrag im Prinzip "Eintrag für Eintrag" auslesen und dann die jeweils 4 Daten pro Eintrag in die Datenbank eintragen kann. Alles andere, wie überprüfen ob Eintrag schon vorhanden, etc. weiß ich ja wie, aber diese Grundidee fehlt mir leider noch. :roll:

Danke für eure Hilfe
 
Guck Dir mal den "Quellcode" der Feeds an. Da wirst Du sehen, dass das XML ist.
:roll::( Tschuldigung....
aber jetzt kommen wir schon zur nächsten Frage. Und zwar hab ich mich mal schlau gemacht und das einfachste sollte das simplexml sein, was allerdings erst in PHP5 drin ist. Daher wäre jetzt die Frage, wie man es sonst richtig auslesen kann. Denn Im Prinzip finden sich ja immer diese Blocks in der Datei:

<item>
<title>Siemens trennt sich von weiterem Unternehmensteil</title>
<link>https://www.golem.de/0711/56314.html</link>
<description>Siemens will die Abteilung für Unternehmensnetzwerke verkaufen. Siemens-Chef Peter Löscher, der den Konzern umbauen will, schließt auch weitere Verkäufe nicht aus.</description>
<comments>https://forum.golem.de/read.php?21741</comments>
<pubDate>Fri, 30 Nov 2007 18:23:00 +0100</pubDate>
<guid>https://www.golem.de/0711/56314.html</guid>
</item>

Also immer <item>, dann die Infos dazu und dann wieder </item>...Gibts jetzt irgendwie die Möglichkeit mit ner while-scheife oder foreach die Daten in der Form auszugeben?

Eintrag 1...titel,link,description,comments,pubDate,guid
Eintrag 2.....

Also so, dass ich im Prinzip alle aufgelistet bekomme und die jeweiligen Infos daneben?

Danke für eure Hilfe
 
Hmh...also alles, was ich finde ist immer mit simplexml und das läuft leider auf meinem webspace nicht...habt ihr ne Idee, wie diese Ausgabe zustande kommen kann?
 
Wenn PHP5 noch nicht (wird aber langsam Zeit ;)) verfügbar ist, musst du eben selber Hand anlegen:
RSS-Feed sind linear gebaut, d.h. es gibt genau einen rss-Tag mit genau einem channel-Tag und dort sind genau n item-Tags drin.
(Stimmt doch, oder ? Hab mir die Standards noch nie durchgelesen, aber auch noch nie einen Feed gesehen, der anders aussieht)


Wenn du mit RegExp rangehst, holst du alles zwischen dem channel-Tag und danach kannst du mit preg_match_all() dir alle item-Tags holen, um sie dann durchzuiterieren.
 
Wenn PHP5 noch nicht (wird aber langsam Zeit ;)) verfügbar ist, musst du eben selber Hand anlegen:
RSS-Feed sind linear gebaut, d.h. es gibt genau einen rss-Tag mit genau einem channel-Tag und dort sind genau n item-Tags drin.
(Stimmt doch, oder ? Hab mir die Standards noch nie durchgelesen, aber auch noch nie einen Feed gesehen, der anders aussieht)


Wenn du mit RegExp rangehst, holst du alles zwischen dem channel-Tag und danach kannst du mit preg_match_all() dir alle item-Tags holen, um sie dann durchzuiterieren.

Hallo...du kannst dir ja die Datei mal anschauen. Denn erst kommen ein paar allgemein Infos, dann kommt <item> für jeden Eintrag und dann nochmal Einträge dazu...also hier ein Auszug:

PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- generator="FeedCreator 1.6" -->
<rss version="2.0">
    <channel>
        <title>Golem.de</title>
        <description>IT-News fuer Profis</description>
        <link>https://www.golem.de/</link>
        <lastBuildDate>Fri, 30 Nov 2007 18:26:05 +0100</lastBuildDate>
        <generator>FeedCreator 1.6</generator>
        <image>
            <url>https://www.golem.de/_img/golemlogo_70.png</url>
            <title>Golem.de Logo</title>
            <link>https://www.golem.de/</link>
            <description>Golem.de News Feed</description>
        </image>
        <language>de</language>
        <item>
            <title>Siemens trennt sich von weiterem Unternehmensteil</title>
            <link>https://www.golem.de/0711/56314.html</link>
            <description>Siemens will die Abteilung für Unternehmensnetzwerke verkaufen. Siemens-Chef Peter Löscher, der den Konzern umbauen will, schließt auch weitere Verkäufe nicht aus.</description>
            <comments>https://forum.golem.de/read.php?21741</comments>
            <pubDate>Fri, 30 Nov 2007 18:23:00 +0100</pubDate>
            <guid>https://www.golem.de/0711/56314.html</guid>
        </item>
        <item>
            <title>Mehr als zwei Drittel der Deutschen surft im Internet</title>
            <link>https://www.golem.de/0711/56313.html</link>
            <description>Computer und Internet gehört inzwischen zum Alltag der Deutschen. Eine große Mehrheit ist sogar täglich online. Notebooks werden dabei als Zugangsgerät immer beliebter. Weiterhin meiden die Älteren das Internet noch zum Teil, während es für die Jüngeren fest zum Alltag gehört. (<a href="[url]https://www.golem.de/specials/notebook/">Notebook</a>[/url], <a href="https://www.golem.de/specials/studie/">Studie</a>)</description>
            <comments>https://forum.golem.de/read.php?21740,1155786,1155833</comments>
            <pubDate>Fri, 30 Nov 20
.................
        </item>
    </channel>
</rss>