会话结束时运行脚本


Run script when session ends

我正在研究如何在用户会话结束时运行脚本或函数,以便删除可能需要的临时文件。

我在SO周围寻找了这个问题的解决方案,并遇到了这个问题,但我发现我有点力不从心,我发现关于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_divisorsession.gc_probability,但无论如何都无法编辑php.ini。

这能实现吗。我应该使用cron作业吗?如果是,我如何检查会话是否完成?

我应该使用cron作业吗?如果是,我如何检查会话是否完成?

是的。您可以根据上次修改文件的时间来执行此操作(在您的情况下,文件是一个目录)。如果它超过了最大会话期限,请删除该目录。

您可以使用findWikipedia命令。

您在PHP文件夹中找到了一个示例脚本,请参阅从自定义的会话文件夹中删除旧的会话文件?以及清理php会话文件。