- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我试图让 simplepie 使用 codeigniter 循环访问一些 rss 提要,但我只能让它显示数组中最后一个提要的提要项目。
我认为这与 _get_feed 函数中的 foreach 循环有关,但我尝试过的所有方法都无法修复它。
在我的 Controller 中我有这个
class Main extends Controller{
function index()
{
$this->load->library( 'Simplepie' );
$feed_urls = array
(
'http://feeds.feedburner.com/SputnikmusicNews',
'http://feeds2.feedburner.com/nmecom/rss/newsxml',
);
foreach ($feed_urls as $feed_url)
{
$data = $this->_get_feed($feed_url);
}
$data['main_content'] = 'main_view';
$this->load->view('includes/template', $data);
}
function _get_feed($url)
{
$feed = new SimplePie();
$feed->set_feed_url($url);
$feed->init();
$count = 0;
foreach($feed->get_items() as $item)
{
$data['feed'][$count]['title'] = $item->get_title();
$data['feed'][$count]['permalink'] = $item->get_permalink();
$count ++;
}
return $data;
}
}
然后在我看来我有这个
<?php foreach($feed as $item) : ?>
<br />
<a href="<?php echo $item['permalink']; ?>"><?php echo $item['title']; ? ></a>
<?php endforeach; ?>
我知道可以为 simplepie 提供一组供稿以使用 set_feed_url 函数进行解析,但我不想这样做,因为它会将所有供稿项目混合在一起。
我还想知道将 _get_feed 函数放在 Controller 中是否符合最佳实践,还是放在模型中会更好,因为它正在获取数据?
最佳答案
据我所知,您的 $data 数组不是全局的,因此仅在 index 函数内有作用域。
就惯例而言,我只对数据库连接使用模型,但我认为没有任何硬性规定。
class Main extends Controller{
function index()
{
$this->load->library( 'Simplepie' );
$feed_urls = array
(
'http://feeds.feedburner.com/SputnikmusicNews',
'http://feeds2.feedburner.com/nmecom/rss/newsxml',
);
foreach ($feed_urls as $feed_url)
{
$data['feed'][] = $this->_get_feed($feed_url);
}
$data['main_content'] = 'main_view';
$this->load->view('includes/template', $data);
}
function _get_feed($url)
{
$feed = new SimplePie();
$feed->set_feed_url($url);
$feed->init();
$count = 0;
foreach($feed->get_items() as $item)
{
$return[$count]['title'] = $item->get_title();
$return[$count]['permalink'] = $item->get_permalink();
$count ++;
}
return $return;
}
}
这会给你:
$data['feed'][0] = details from 1st url
$data['feed'][1] = details from 2nd url
因此,要访问第一个提要中第一篇文章的标题:
$data['feed'][0][0]['title']
//or within the view
$feed[0][0]['title'];
如果您想将 URL 合并在一起,您可以这样做:
class Main extends Controller{
function index()
{
$this->load->library( 'Simplepie' );
$feed_urls = array
(
'http://feeds.feedburner.com/SputnikmusicNews',
'http://feeds2.feedburner.com/nmecom/rss/newsxml',
);
foreach ($feed_urls as $feed_url)
{
$feed_info[] = $this->_get_feed($feed_url);
$data['feed'][] = $this->_get_feed($feed_url);
}
foreach ($feed_info as $feed)
{
foreach($feed as $feed_item)
{
$data['feed'][] = array( 'title' => $feed_item->get_title(), 'permalink' => $feed_item->get_permalink() );
}
}
$data['main_content'] = 'main_view';
$this->load->view('includes/template', $data);
}
function _get_feed($url)
{
$feed = new SimplePie();
$feed->set_feed_url($url);
$feed->init();
return $feed;
}
}
关于php - 在带有 codeigniter 的 simplepie 中使用多个提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3330980/
如果我提供的其中一个提要不可用或无效(由于提要提供者端的服务器问题),我正试图让 SimplePie 正常失败 我得到的代码是这样的: $this->feed= new SimplePie(); //
在新版本中删除了 get_favicon 方法,如 Changes in this Release 中所示文档部分。 当我尝试 $item->get_favicon() 时,我只得到 Call to
我正在使用这个 simplepie,我已经将文件上传到我的主机。除了一件事,一切似乎都运行良好。我从中获取提要的博客中有图像,当我使用 simplepie 查看提要时,图像不显示。当我使用 simpl
使用 SimplePie,我如何按随机顺序和标题(字母)对项目进行排序?根据这个页面( http://simplepie.org/wiki/tutorial/sorting_by_custom_cri
呃。我知道这看起来很简单(就像馅饼一样,呵呵),但我不断得到一个 Warning: /cache/ is not writeable. Make sure you've set the correct
我已经安装了最新的 Simplepie 代码 (1.2.1),我正在使用他们提供的演示代码: set_feed_url($url); $feed->init(); // default startin
我的 SimplePie 安装是直接的 Linux 安装。 (没有 WordPress 或任何东西) 我正在尝试在我的提要文章之间添加横幅。例如,如果我每页显示 10 篇提要文章,我想在第 5 篇之后
我有一个个人项目,可以在我的 NAS 驱动器上本地缓存一些 rss 提要(使用它的内置网络服务器和一个 chron 作业),这样当我的台式机关闭时我就不会错过“帖子”。 到目前为止,我已经设置了一个简
SimplePie 是一个开源的 RSS 解析器。显然,SimplePie 可以从它处理的 RSS 提要中缓存图像。但我不知道如何处理文档。 示例代码如下所示 $feed = new SimplePi
我有多个分支站点,它们使用 Simplepie 将他们的 RSS 新闻提要馈送到一个主站点。这很好用。唯一的问题是,有时多个分支机构发布同一篇新闻文章,然后在主站点上显示多篇新闻文章。我将如何删除重复
我想问一下,我有一个 div,我想放置来自 BBC 或 CNN 的 RSS 提要。现在可以了,但我想对进入的提要进行分页,一次显示 5 个,其他显示链接何时被单击。 我现在开始编写代码,但我希望我能得
我还没有安装 SamplePie,但我有这个 /myhost/public_html/wp-includes/SimplePie导致 fatal error 的 php 文件。 错误如下: Fatal
我正在尝试使用 SimplePie 提取组池 flickr feed: $feed = new SimplePie(); $feed->set_feed_url('http://api.flickr.
我遇到以下字符编码问题,我不知道如何解决。我正在建立一个网站,需要从自定义新闻网站获取提要并将其存储在我自己的数据库中。 问题是,对于某些提要,可以用德语变音符号 (ä,ü,ß) 很好地存储。但对于其
我正在尝试配置 SimplePie RSS 解析器以将提要缓存到 mySQL 数据库中,但当我尝试加载 SimplePie 页面时,我不断收到此错误消息: fatal error :在非对象上调用成员
我目前正在使用 Simplepie拉入我的 RSS 提要,如下面的配置所示。我想将 $url 移动到我的数据库,因为我的网站加载速度太慢。我将每个 url 作为站点名称的键值对。我想保留此关联,因为我
我试图让 simplepie 使用 codeigniter 循环访问一些 rss 提要,但我只能让它显示数组中最后一个提要的提要项目。 我认为这与 _get_feed 函数中的 foreach 循环有
我有两个单独的 WordPress 安装 - 我将一个称为站点 A,另一个称为站点 B。我想使用 fetch_feed() 将提要从站点 B 拉到站点 A。我还想包括一个缩略图。默认情况下,WordP
我正在使用 SimplePie 1.4.2 的编译版本(GitHub 上最后一个标记版本)聚合一些 rss/atom 提要(如果需要,可以使用下面的代码)。 它在几个基于 Linux 的 Web 主机
我正在尝试使用 Wordpress 的内置 SimplePie 加载 RSS 提要。 include_once(ABSPATH . WPINC . '/feed.php'); $rssURL = 'h
我是一名优秀的程序员,十分优秀!