PHP Externes RSS-Feed defekt

Schumiel

Lieutenant
Registriert
Jan. 2010
Beiträge
849
Hallo,

und zwar habe ich ein RSS-Feed eines Dritten eingebaut, da es für meine Webseite sehr nützlich ist.

Kürzlich war das RSS-Feed aber defekt, so dass es die Erreichbarkeit meiner Seite durch Fehlercodes gestört hat.

Wie kann man Feeds vorher prüfen, ob es erreichbar ist und dann ausgeben lassen?

Grüße
schumiel
 
Das hängt davon ab, wie du die Feeds ausliest. ;) In PHP stehen dir verschiedene Möglichkeiten zur Verfügung - unter anderem verschiedene XML Klassen. Am besten helfen könnte man dir wahrscheinlich, wenn du den betroffenen Code-Ausschnitt zeigst.
 
PHP:
$rdffile = "http://www.***.de/rss.php";
$content = implode ("", file ($rdffile));
preg_match_all("|<item>(.*)</item>|Uism",$content, $items, PREG_PATTERN_ORDER);
for ($i=0;$i<6;$i++)
{
  preg_match_all("|<title>(.*)</title>(.*)<description>(.*)</description>(.*)<link>(.*)</link>|Uism",$items[1][$i], $regs, PREG_PATTERN_ORDER);
  echo "&raquo; <a href='".$regs[5][0]."' target='_blank'>".$regs[1][0]."</a><br><br>\n";
}
 
Ja, und wo ist das Problem erst einmal zu prüfen, ob $rdffile überhaupt existiert bzw. ob file() überhaupt einen Array anstatt FALSE zurück gibt?

Übrigens ist file() nicht unbedingt die richtige Lösung für einen Fernzugriff via http, auch wenn es möglich ist. Hierfür wäre ein Ansatz über cURL deutlich günstiger.
 
Nehmen wir an, in der rss.php wird gerade gearbeitet, eben von dem Betreiber des Feeds. Er baut ein Fehler in der Datei rss.php ein. bemerkt es nicht und der Fehler besteht als beispiel 3 Stunden. 3 Stunden wäre meine Seite dann nicht aufrufbar. Dennoch existiert $rdffile doch, oder nicht?
 
Mal ne Frage, warum liest du das nicht mit SimpleXML aus? Da gibts auch eine Möglichkeit zu prüfen obs ein gültiges XML ist.

Alternative probiers mal mit einem Try Block.
 
Zuletzt bearbeitet:
Ach so, wenn der RSS-XML selbst defekt ist, ich dachte du meinst eher 404er...

Es gibt massig Tutorials für anständige RSS-Parser (inklusive frei verwendbarer vorgekauter Klasse). Erfinde das Rad nicht neu, nutze bestehende Quellen. Den selben Code immer und immer wieder neu zu erfinden macht die Welt nicht wirklich besser.
Also: Entweder cURL + SimpleXML oder gleich eine fertige PHP RSS Parser Klasse
 
Ok, dann sollte ich mich genauer mit der Thematik beschäftigen.

Dieses Beispiel war ein vorgefertigtes Beispiel (Benutzerfreundlichkeit seinerseits), das ich von ihm einfach übernommen hatte.

Wenn es bestehende Quellen dazu gibt, werde ich sie via Google suchen. Danke für eure Hilfe.
 
Zurück
Oben