0
我正在建立一个网站来学习PHP,并且正在制作一个可以在我的网站上展示的feed-rss-feeds。如何限制饲料?
下面的代码:
<?php
class Feed_Amalgamator
{
public $urls = array();
public $data = array();
public function addFeeds(array $feeds)
{
$this->urls = array_merge($this->urls, array_values($feeds));
}
public function grabRss()
{
foreach ($this->urls as $feed)
{
$data = @new SimpleXMLElement($feed, 0, true);
if (!$data)
throw new Exception('Could not load: ' . $feed);
foreach ($data->channel->item as $item)
{
$this->data[] = $item;
}
}
}
public function amalgamate()
{
shuffle($this->data);
$temp = array();
foreach ($this->data as $item)
{
if (!in_array($item->link, $this->links($temp)))
{
$temp[] = $item;
}
}
$this->data = $temp;
shuffle($this->data);
}
private function links(array $items)
{
$links = array();
foreach ($items as $item)
{
$links[] = $item->link;
}
return $links;
}
}
/********* Example *********/
$urls = array('http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/football/teams/m/man_city/rss.xml', 'http://newsrss.bbc.co.uk/rss/sportonline_uk_edition/football/teams/l/liverpool/rss.xml');
try
{
$feeds = new Feed_Amalgamator;
$feeds->addFeeds($urls);
$feeds->grabRss();
$feeds->amalgamate();
}
catch (exception $e)
{
die($e->getMessage());
}
foreach ($feeds->data as $item) :
extract((array) $item);
?>
<a href="<?php echo $link; ?>"><?php echo $title; ?></a>
<p><?php echo $description; ?></p>
<p><em><?php echo $pubDate; ?></em></p>
<?php endforeach; ?>
这是一个伟大的剧本,完美的作品,但它占用了相当多的空间在我的网站。我怎么能限制它只显示5个结果,有点像MySQL限制?
您想要总共五个结果,或者每个URL有五个结果? – j08691 2012-08-14 16:52:19
@ j08691,5个总计结果 – Muhambi 2012-08-14 16:52:45
或者每个网址的结果比2更容易。这可能吗? – Muhambi 2012-08-14 16:58:32