Maison >développement back-end >tutoriel php >Comment puis-je analyser efficacement les flux RSS/Atom en PHP à l'aide de SimpleXML ?

Comment puis-je analyser efficacement les flux RSS/Atom en PHP à l'aide de SimpleXML ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-07 22:59:20654parcourir

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

Analyse des flux RSS/Atom avec PHP

Lors de l'analyse des flux RSS ou Atom à l'aide de Magpie RSS, il est important d'envisager des options alternatives qui peuvent gérer aliments bien formés. L'une de ces options est SimpleXML.

SimpleXML, intégré à PHP, offre une structure conviviale pour analyser les documents XML. Il détecte les erreurs XML et avertit en cas de problème. Pour corriger de telles erreurs, vous pouvez envisager d'utiliser HTML Tidy pour nettoyer la source.

Voici une classe de base qui utilise SimpleXML pour analyser les flux RSS :

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

En utilisant SimpleXML et en gérant XML erreurs, vous pouvez analyser efficacement les flux RSS et Atom en utilisant PHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn