我正在研究如何在用户会话结束时运行脚本或函数,以便我可以删除可能需要的临时文件。
我一直在搜索SO找到这个问题的解决方案并且遇到了this但是我发现我有点超出我的深度而且我发现有关GC的PHP文档令人困惑(以及我的内容)从文档中了解 - 这不是我真正需要的。)
我查看session_set_save_handler
上的页面并提出了这个问题:
session_set_save_handler( '', '', '', '', 'deleteDocs');
function deleteDocs()
{
rmdir('user/' . rawurlencode($_SESSION['data']['user']['details']['email']) . '/temp');
}
但是,此功能根本不运行。坦率地说,有了这个,我觉得我不知道自己在做什么。
我尝试使用GC并查看了session.gc_divisor
和session.gc_probability
,但无论如何我都无法编辑php.ini。
能否实现这一目标。我应该使用cron作业 - 如果是,我该如何检查会话是否已完成?
答案 0 :(得分:2)
我应该使用cron作业 - 如果是,我该如何检查会话是否已完成?
是。您可以根据文件的上次修改时间执行此操作(在您的情况下,文件是目录)。如果它早于最大会话年龄,请删除目录。
您可以使用find
Wikipedia命令。
您在PHP文件夹中找到了一个示例脚本,另请参阅Deleting old session files from custom set session folder?和cleanup php session files。