„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich RSS/Atom-Feeds in PHP mit SimpleXML effizient analysieren?

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

Veröffentlicht am 24.11.2024
Durchsuche:457

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

Parsen von RSS-/Atom-Feeds mit PHP

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 die Behandlung von XML-Fehlern können Sie sowohl RSS- als auch Atom-Feeds effektiv mit PHP analysieren.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3