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
Patricia ArquetteOriginal
2024-12-07 22:59:20654Durchsuche

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;
    }
}

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!

Stellungnahme:
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