"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo analizar de manera eficiente fuentes RSS/Atom en PHP usando SimpleXML?

¿Cómo puedo analizar de manera eficiente fuentes RSS/Atom en PHP usando SimpleXML?

Publicado el 2024-11-24
Navegar:525

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

Analizando feeds RSS/Atom con PHP

Al analizar feeds RSS o Atom usando Magpie RSS, es importante considerar opciones alternativas que puedan manejar feeds bien formados. Una de esas opciones es SimpleXML.

SimpleXML, integrado en PHP, ofrece una estructura fácil de usar para analizar documentos XML. Detecta errores XML y advierte si encuentra algún problema. Para solucionar este tipo de errores, puede considerar el uso de HTML Tidy para limpiar el código fuente.

Aquí hay una clase básica que utiliza SimpleXML para analizar fuentes 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;
    }
}

Al utilizar SimpleXML y manejar errores XML, puedes analizar de manera efectiva fuentes RSS y Atom usando PHP.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3