با سلا
این کلاسو استفاده کن
شاید خیلی اصولی نباشه ولی من توی بیشتر سایتها ازش استفاده کرده اوم و همیشه هم جوابگو بوده
کلاس:
<?php
class rssReader
{
var $get_url;
var $get_limit;
public function rss_result($rssUrl,$rssLimit)
{
set_time_limit(0);
$return_result = array();
// Set variable
$this->get_url = $rssUrl;
$this->get_limit = $rssLimit;
// Load XML file
$xmlObj = new DOMDocument();
$xmlObj->load($this->get_url);
// Manage item tag
$itemTag = $xmlObj->getElementsByTagName('item');
// Check rss for number of item tag
$nums = 0;
foreach($itemTag as $aabb)
{
$nums++;
}
// Check limit
if($nums > $this->get_limit)
{
$loopNum = $this->get_limit;
}
else
{
$loopNum = $nums;
}
// Read rss nodes
for($i=0;$i<$loopNum;$i++)
{
$itemTitle = $itemTag->item($i)->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
$itemLink = $itemTag->item($i)->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue;
$return_result = ['title' => $itemTitle, 'description' => $itemLink];
}
// Echo rss body
return $return_result;
}
}
?>
استفاده :
if(class_exists('rssReader')){
$reader = new rssReader();
$rssValues = $reader->rss_result($Config['url'], $Config['count']);
var_dump($rssValues);
}
نمونه :
if(class_exists('rssReader')){
$reader = new rssReader();
$rssValues = $reader->rss_result('http://www.tabnak.ir/fa/rss/allnews', 10);
var_dump($rssValues);
}
در کلاس بالا نود هایی که میخواهید رو می تونید مشخص کنید
// Read rss nodes
for($i=0;$i<$loopNum;$i++)
{
$itemTitle = $itemTag->item($i)->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
$itemLink = $itemTag->item($i)->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue;
$return_result = ['title' => $itemTitle, 'description' => $itemLink];
}
title , description اسامی نودهایی هستن که مورد استفاده بوده
در تصویر پیوستی اخبار سایت رسا را فراخوانی توسط همین کلاس فراخوانی کرده ام
موفق باشید