我正在开发一个网站,它将显示来自RSS提要的最新项目。但是,每次用户访问网站时,我都希望页面显示缓存的数据。这会使页面显示更快,因为我计划缓存50个RSS源。如何缓存要在网站上显示的RSS提要数据?
我的问题是,我如何缓存RSS提要,但确保它每隔4个小时左右在后台更新?
在此先感谢。
我正在开发一个网站,它将显示来自RSS提要的最新项目。但是,每次用户访问网站时,我都希望页面显示缓存的数据。这会使页面显示更快,因为我计划缓存50个RSS源。如何缓存要在网站上显示的RSS提要数据?
我的问题是,我如何缓存RSS提要,但确保它每隔4个小时左右在后台更新?
在此先感谢。
创建一个缓存文件夹来存储所有RSS提要。
当页面加载时,检查文件是否存在,如果它没有下载并处理它。
如果该文件存在,并且filemtime($cached_file) + (60 * 60 * 4)
的结果大于time()
,这意味着它已经少于自提取RSS提要以来的4小时。像正常一样显示页面。如果不是这种情况,请重新下载并显示文件。
有很多关于在PHP中解析RSS提要的教程。我更喜欢使用PHP的DOM
扩展,但有很多不同的方法可以做到。
我创建了一个简单的PHP类来解决这个问题。由于我正在处理各种来源,它可以处理任何你在它(xml,json等)的投入。您给它一个本地文件名(用于存储目的),外部提要以及到期时间。它从检查本地文件开始。如果它存在并且没有过期,则返回内容。如果它已过期,它将尝试获取远程文件。如果远程文件存在问题,它将回退到缓存文件。
此处的博客文章:http://weedygarden.net/2012/04/simple-feed-caching-with-php/
`cron`工作读饲料到你的数据库。在访问时,从数据库中读取。 – drudge 2011-01-28 00:26:37
什么是解析RSS XML的最佳方式? – BigMike 2011-01-28 00:35:25