تحليل خلاصات RSS/Atom باستخدام PHP
عند تحليل خلاصات RSS أو Atom باستخدام Magpie RSS، من المهم التفكير في خيارات بديلة يمكنها التعامل مع يغذي بشكل جيد. أحد هذه الخيارات هو SimpleXML.SimpleXML، المدمج في PHP، يوفر بنية سهلة الاستخدام لتحليل مستندات XML. يكتشف أخطاء XML ويحذر عند مواجهة أية مشكلات. لمعالجة مثل هذه الأخطاء، يمكنك التفكير في استخدام HTML Tidy لتنظيف المصدر.إليك فئة أساسية تستخدم SimpleXML لتحليل خلاصات RSS:class BlogPost { تاريخ $ العام؛ $ts العامة؛ رابط $ العام؛ عنوان $ العام؛ نص $ عام؛ } فئة مدونة المدونة { مشاركات $ العامة = []; الوظيفة العامة __construct($file_or_url) { $file_or_url = $this->resolveFile($file_or_url); if (!$x = simplexml_load_file($file_or_url)) return; foreach ($x->قناة->عنصر كعنصر $) { $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; } } وظيفة خاصة ResolveFile($file_or_url) { إذا (!preg_match('|^https?:|', $file_or_url)) $feed_uri = $_SERVER['DOCUMENT_ROOT'] .'/shared/xml/'. $file_or_url; آخر $feed_uri = $file_or_url; إرجاع $feed_uri؛ } وظيفة خاصة تلخيص النص(ملخص $) { $summary = strip_tags($summary); $max_len = 100; إذا (سترلين($summary) > $max_len) $summary = substr($summary, 0, $max_len) . '...'; إرجاع ملخص $؛ }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; } }من خلال استخدام SimpleXML ومعالجة أخطاء XML، يمكنك تحليل خلاصات RSS وAtom بشكل فعال باستخدام PHP.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3