我正在开发一个网站,它将显示RSS Feed中的最新项目。但是,每次用户访问网站时,我都希望页面显示缓存数据。这将使页面显示更快,因为我计划缓存50多个RSS源。
我的问题是,如何缓存RSS Feed,但要确保每4小时左右在后台更新一次?
提前致谢。
答案 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/