Apakah Cara Terbaik untuk Menghuraikan Suapan RSS/Atom dalam PHP Menggunakan SimpleXML?

Patricia Arquette
Lepaskan: 2024-11-25 15:51:16
asal
712 orang telah melayarinya

What's the Best Way to Parse RSS/Atom Feeds in PHP Using SimpleXML?

Cara Terbaik Menghuraikan Suapan RSS/Atom dengan PHP

Magpie RSS ialah perpustakaan popular untuk menghuraikan suapan RSS dan Atom dalam PHP, tetapi ia diketahui gagal apabila menghadapi suapan yang cacat. Oleh itu, pilihan alternatif mungkin diperlukan.

Salah satu alternatif yang disyorkan ialah menggunakan fungsi SimpleXML terbina dalam PHP. SimpleXML menyediakan struktur intuitif untuk menghuraikan dokumen XML, termasuk suapan RSS dan Atom. Ia juga mengesan dan mengendalikan amaran dan ralat XML. Jika ralat berlaku, sumber suapan boleh dibersihkan menggunakan alat seperti HTML Tidy sebelum cuba menghuraikannya semula.

Berikut ialah kelas mudah menggunakan SimpleXML untuk menghuraikan suapan RSS:

class BlogPost
{
    var $date;
    var $ts;
    var $link;

    var $title;
    var $text;
}

class BlogFeed
{
    var $posts = array();

    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;

            // Create summary as a shortened body and remove images, 
            // extraneous line breaks, etc.
            $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);

        // Truncate summary line to 100 characters
        $max_len = 100;
        if (strlen($summary) > $max_len)
            $summary = substr($summary, 0, $max_len) . '...';

        return $summary;
    }
}
Salin selepas log masuk

Kelas ini menyediakan kaedah untuk memuatkan dan menghuraikan suapan RSS, mengekstrak dan menyimpan siaran individu dan meringkaskan teks siaran untuk tujuan paparan. Dengan menggunakan SimpleXML, kelas ini boleh mengendalikan dengan berkesan dan boleh dipercayai suapan RSS yang dibentuk dengan baik dan cacat.

Atas ialah kandungan terperinci Apakah Cara Terbaik untuk Menghuraikan Suapan RSS/Atom dalam PHP Menggunakan SimpleXML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan