2011-01-28 65 views
-1

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

我的问题是,我如何缓存RSS提要,但确保它每隔4个小时左右在后台更新?

在此先感谢。

+1

`cron`工作读饲料到你的数据库。在访问时,从数据库中读取。 – drudge 2011-01-28 00:26:37

+0

什么是解析RSS XML的最佳方式? – BigMike 2011-01-28 00:35:25

回答

4

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

当页面加载时,检查文件是否存在,如果它没有下载并处理它。

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

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

1

我创建了一个简单的PHP类来解决这个问题。由于我正在处理各种来源,它可以处理任何你在它(xml,json等)的投入。您给它一个本地文件名(用于存储目的),外部提要以及到期时间。它从检查本地文件开始。如果它存在并且没有过期,则返回内容。如果它已过期,它将尝试获取远程文件。如果远程文件存在问题,它将回退到缓存文件。

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

代码在这里:https://github.com/erunyon/FeedCache