Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich RSS/Atom-Feeds in PHP mit SimpleXML effizient analysieren?

Wie kann ich RSS/Atom-Feeds in PHP mit SimpleXML effizient analysieren?

Patricia Arquette
Freigeben: 2024-12-07 22:59:20
Original
676 Leute haben es durchsucht

How Can I Efficiently Parse RSS/Atom Feeds in PHP Using SimpleXML?

RSS-/Atom-Feeds mit PHP analysieren

Beim Parsen von RSS- oder Atom-Feeds mit Magpie RSS ist es wichtig, alternative Optionen in Betracht zu ziehen, die damit umgehen können wohlgeformte Feeds. Eine solche Option ist SimpleXML.

SimpleXML ist in PHP integriert und bietet eine benutzerfreundliche Struktur zum Parsen von XML-Dokumenten. Es erkennt XML-Fehler und warnt bei auftretenden Problemen. Um solche Fehler zu beheben, können Sie HTML Tidy verwenden, um die Quelle zu bereinigen.

Hier ist eine Basisklasse, die SimpleXML zum Parsen von RSS-Feeds verwendet:

class BlogPost {
    public $date;
    public $ts;
    public $link;
    public $title;
    public $text;
}

class BlogFeed {
    public $posts = [];

    public 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;
            $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);
        $max_len = 100;
        if (strlen($summary) > $max_len)
            $summary = substr($summary, 0, $max_len) . '...';

        return $summary;
    }
}
Nach dem Login kopieren

Durch die Verwendung von SimpleXML und den Umgang mit XML Fehler können Sie sowohl RSS- als auch Atom-Feeds effektiv mit PHP analysieren.

Das obige ist der detaillierte Inhalt vonWie kann ich RSS/Atom-Feeds in PHP mit SimpleXML effizient analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage