Heim > Artikel > Backend-Entwicklung > Was ist der beste Weg, RSS/Atom-Feeds in PHP mit SimpleXML zu analysieren?
Bester Weg, RSS-/Atom-Feeds mit PHP zu analysieren
Magpie RSS ist eine beliebte Bibliothek zum Parsen von RSS- und Atom-Feeds in PHP, aber Es ist bekannt, dass es bei fehlerhaften Feeds fehlschlägt. Daher können alternative Optionen erforderlich sein.
Eine der empfohlenen Alternativen ist die Verwendung der in PHP integrierten SimpleXML-Funktionen. SimpleXML bietet eine intuitive Struktur zum Parsen von XML-Dokumenten, einschließlich RSS- und Atom-Feeds. Es erkennt und verarbeitet auch XML-Warnungen und -Fehler. Wenn ein Fehler auftritt, kann die Feed-Quelle mit einem Tool wie HTML Tidy bereinigt werden, bevor versucht wird, sie erneut zu analysieren.
Hier ist eine einfache Klasse, die SimpleXML verwendet, um einen RSS-Feed zu analysieren:
class BlogPost { var $date; var $ts; var $link; var $title; var $text; } class BlogFeed { var $posts = array(); function __construct($file_or_url) { $file_or_url = $this->resolveFile($file_or_url); if (!($x = simplexml_load_file($file_or_url))) return; foreach ($x->channel->item as $item) { $post = new BlogPost(); $post->date = (string) $item->pubDate; $post->ts = strtotime($item->pubDate); $post->link = (string) $item->link; $post->title = (string) $item->title; $post->text = (string) $item->description; // Create summary as a shortened body and remove images, // extraneous line breaks, etc. $post->summary = $this->summarizeText($post->text); $this->posts[] = $post; } } private function resolveFile($file_or_url) { if (!preg_match('|^https?:|', $file_or_url)) $feed_uri = $_SERVER['DOCUMENT_ROOT'] .'/shared/xml/'. $file_or_url; else $feed_uri = $file_or_url; return $feed_uri; } private function summarizeText($summary) { $summary = strip_tags($summary); // Truncate summary line to 100 characters $max_len = 100; if (strlen($summary) > $max_len) $summary = substr($summary, 0, $max_len) . '...'; return $summary; } }
Diese Klasse bietet Methoden zum Laden und Analysieren eines RSS-Feeds, zum Extrahieren und Speichern einzelner Beiträge und zum Zusammenfassen von Beitragstexten für Anzeigezwecke. Durch die Verwendung von SimpleXML kann diese Klasse wohlgeformte und fehlerhafte RSS-Feeds effektiv und zuverlässig verarbeiten.
Das obige ist der detaillierte Inhalt vonWas ist der beste Weg, RSS/Atom-Feeds in PHP mit SimpleXML zu analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!