具有缓存功能的RSS生成器

时间:2010-08-21 15:10:52

标签: php mysql rss feeds

你碰巧知道任何带有缓存功能的好rss生成器脚本吗?到目前为止我在网上找到的所有脚本都不支持缓存!我需要在指定的时间段内从数据库自动生成rss的内容。

提前致谢

1 个答案:

答案 0 :(得分:3)

首先,要将缓存添加到脚本 ,将Zend_FeedZend_Cache放在一起似乎并不难 - 或者只使用Zend_Cache包装当前的生成脚本。

只需使用您的生命周期设置缓存:

$frontendOptions = array(
  'lifetime' => 7200, // cache lifetime of 2 hours
  'automatic_serialization' => true
);

然后检查缓存是否仍然有效:

if(!$feed = $cache->load('myfeed')) {
  //generate feed
  $cache->save($feed, 'myfeed');
}

//output $feed

我不知道你是如何形成你的RSS的,但你可以import an array structure to Zend_Feed

$rssFeedFromArray = Zend_Feed::importArray($array, 'rss');

当然,最佳方式可能只是使用您当前的Feed生成器并将输出保存到文件。使用该文件作为RSS提要,然后使用cron / web hooks / queue / whatever生成静态文件。与生成脚本执行缓存相比,这将更简单,并且使用更少的资源。

//feedGen.php
//may require some output buffering if the feed generator outputs directly
$output = $myFeedGenerator->output();
file_put_contents('feed.rss', $output);

现在Feed链接为/feed.rss,您只需在需要刷新时运行feedGen.php即可。提供静态文件(甚至不用php解析)意味着你的服务器要做的更少。