如何缓存RSS feed数据以显示在网站上?

时间:2011-01-28 00:21:56

标签: php sql rss

我正在开发一个网站,它将显示RSS Feed中的最新项目。但是,每次用户访问网站时,我都希望页面显示缓存数据。这将使页面显示更快,因为我计划缓存50多个RSS源。

我的问题是,如何缓存RSS Feed,但要确保每4小时左右在后台更新一次?

提前致谢。

2 个答案:

答案 0 :(得分:4)

创建一个缓存文件夹来存储所有RSS源。

加载页面时,检查文件是否存在,是否不下载并处理。

如果文件存在且filemtime($cached_file) + (60 * 60 * 4)的结果大于time(),则意味着它已经少于提取RSS提要后的4小时。像正常一样显示页面。如果不是这种情况,请重新下载文件并显示它。

有许多关于在PHP中解析RSS提要的教程。我更喜欢使用PHP的DOM扩展名,但有很多不同的方法可以做到。

答案 1 :(得分:1)

我创建了一个简单的PHP类来解决这个问题。由于我正在处理各种来源,它可以处理你扔的任何东西(xml,json等)。您为其提供本地文件名(用于存储目的),外部订阅源和到期时间。它首先检查本地文件。如果它存在且尚未过期,则返回内容。如果它已过期,它会尝试获取远程文件。如果远程文件存在问题,它将回退到缓存文件。

博客文章:http://weedygarden.net/2012/04/simple-feed-caching-with-php/

此处代码:https://github.com/erunyon/FeedCache