PHP के साथ आरएसएस/एटम फ़ीड को पार्स करना
मैगपाई आरएसएस का उपयोग करके आरएसएस या एटम फ़ीड को पार्स करते समय, उन वैकल्पिक विकल्पों पर विचार करना महत्वपूर्ण है जो संभाल सकते हैं सुगठित फ़ीड. ऐसा ही एक विकल्प SimpleXML है।
PHP में निर्मित SimpleXML, XML दस्तावेज़ों को पार्स करने के लिए एक उपयोगकर्ता-अनुकूल संरचना प्रदान करता है। यह XML त्रुटियों का पता लगाता है और कोई भी समस्या आने पर चेतावनी देता है। ऐसी त्रुटियों को दूर करने के लिए, आप स्रोत को साफ़ करने के लिए HTML Tidy का उपयोग करने पर विचार कर सकते हैं।
यहां एक बुनियादी वर्ग है जो RSS फ़ीड्स को पार्स करने के लिए SimpleXML का उपयोग करता है:
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 त्रुटियों को संभालकर, आप PHP का उपयोग करके RSS और एटम फ़ीड दोनों को प्रभावी ढंग से पार्स कर सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3