我想限制在特定时间范围内生成页面的次数,但是不确定如何解决该问题。

以前,我已经通过安排要生成的页面并保存在cron作业中解决了类似的问题,但是这不允许我动态地执行此操作。

这是场景:

我有n个用户创建的房间。我想构建一个JSON API,以允许用户访问房间信息以在自己的页面上使用。但是,为每个请求生成新的JSON结果将效率极低,并给数据库服务器带来安全风险。我想限制它,以便在x时间内的所有请求都使用相同的JSON结果,而不是每次都使用新结果。

最佳答案

可以像这样完成一个简单的缓存系统

 if (!file_exists($cacheFile) || filemtime($cacheFile) - time() > $cacheLifetime){
     //generate json and save to $cacheFile
 }
 header("Content-Type: application/json");
 header("Content-Length: ".filesize($cacheFile));
 readfile($cacheFile);

10-08 00:50