Hallo Martin,
ich möchte auf einer Seite die Inhalte von Newsfeeds darstellen.
Kurz die übliche Warnung: Beachte bitte dann auch die Rechtefrage, das Veröffentlichen eines Feeds bedeutet nicht automatisch, das die Inhalte des Feeds dann zu öffentlichen Reproduktion in fremden Webseiten frei sind. Der derzeitig im Sinne von Urheberrecht und Copyright konsintente, dominante Konsens sagt, dass Feeds nur noch zum Abonnement in privaten Newsreadern, nicht zur Weiterveröffentlichung in Aggregatoren gedacht sind.
Sprich: Immer zuerst beim Anbieter des Feeds nachgucken, was man mit den Inhalten des Feeds machen darf.
Gibt es dazu Funktionen oder PHP-Klassen, die ich verwenden könnte?
Mir steht PHP 5.1.5 zur Verfügung.
„Im Prinzip“ kann man Newsfeeds mit klassischen XML-Tools, sprich SAX, DOM, XPath verarbeiten, wie Mathias schon vorgeschlagen hat.
In der Praxis würde ich davon abraten, es sei denn, man kennt das Format des zu parsenden Feeds genau. An Newsfeeds befindet sich dort draussen in der Wildbahn haufenweise diverse in der Syntax unterschiedliche Varianten, nämlich RSS 0.9, RSS 0.91 nach Netscape, RSS 0.91 nach Userland, RSS 0.92, die inoffiziellen Versionen RSS 0.93 und RSS 0.94, dann RSS 1.0 und RSS 2.0(1). Dazu kommen noch Atom 1.0 und leider noch Atom 0.3. Diese sind durchaus untereinander inkompatibel. Dazu kommen noch Erweiterungen durch XML-Namensraum eingebundene Module und eine Veränderungung der Semantik bestimmter Elemente mit der Zeit.
Sprich: Wenn man den Anspruch hat, beliebige Newsfeeds parsen zu wollen, sollte man sich um all so etwas kümmern. Und wenn man Newsfeeds regelmäßig abonniert, sollte man sich auch um diverse Features von HTTP kümmern, wie Caching, Redirects und Error 410. Leider ist kaum etwas da, dass out-of-the-box so etwas anbietet, so dass man sich nicht selbst kümmern muss; zumindest ist mir nichts bekannt. Auch an der RSS-Parser-Front von PHP sieht es etwas mau aus, zumindest ist mir nichts bekannt, was mit Pythons Universal Feed Parser mithalten kann. Das in PEAR enthaltene XML_RSS liest offenbar nur das kaum verwendete RSS 1.0, ich rate also davon ab.
Was für PHP oft empfohlen wurde, ist MagpieRSS ein relativ benutzbarer Feedparser. Da die Entwicklung wohl etwas stoppt, werden wohl zukünftig alternative Entwicklungen auftauchen. Eine der ersten, die da auftauchen ist SimplePie. Ich finde, es sieht sehr vielversprechend aus.
Tim