我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

网上很多人给出了答案:修改PHP配置文件。如果想了解更多回收机制,请继续阅读。(本文基于PHP 5.2)

概述:每次 PHP 请求时,都有 1/100 的概率(默认值)触发一次“回收”,如果发生“回收”,则会检查 /tmp/sess_* 下的文件,如果最后修改时间超过 1440 秒(该值),则会删除,也就是过期了。

1.它在客户端是如何存在的(通常用PHP)?

默认情况下,PHP 会将其保存在/tmp 目录下,文件名如下:。每个文件对应一个()。

更多/tmp/

|s:9:“”;管理员|s:1:“0”;

#变量名 | 类型:长度:值

这里删除文件意味着对应的文件将失效。

2. 它如何存在于客户端(通常是浏览器)?

在浏览器端,只需要保存ID(客户端生成的唯一ID)即可。保存方式有两种:浏览器内、URL内。如果将ID保存在浏览器内,则可以看到浏览器中有一个变量。如果是通过URL传递的,则可以看到类似这样的内容:

index.php?= URL。(在末尾使用 . 来控制使用哪种方法)

3.在客户端,PHP 如何判断文件是否过期?

如果“最后修改时间”距离“现在”超过(默认为 1440)秒,则认为文件已过期。下次回收时,如果文件没有被更改,则会将其删除(已过期)。

简单来说,如果我登录一个网站,在1440秒(默认值)内没有任何操作,那么对应的账号就算过期了。

因此可以通过修改php.ini文件中的变量来延长过期时间:(例如我们把过期时间改为86400秒)

. = 86400

然后,重新启动您的 Web 服务器(通常)。

注意:PHP5对于过期采用了回收机制,这里的时间设置为86400秒,如果86400秒内还未修改,那么在下次“回收”时就会被删除。

3.“回收”何时发生?

默认情况下,每个 PHP 请求都有 1/100 的几率被回收,所以可以简单理解为“每 100 个 PHP 请求就会发生一次回收”。这个概率由以下参数控制

#概率是/

. = 1

. = 100

注1:假设此情形=120,如果某个文件最后修改于120秒前,那么直到下次回收前它仍然有效(1/100的概率)。

注意2:如果你使用 . 将文件保存在其他地方,回收机制可能不会自动处理过期文件。在这种情况下,你需要定期手动删除过期文件(或): cd /path/to/; find -cmin +24 | xargs rm

4. 一些特殊情况

因为回收机制会检查文件的“最后修改时间”,如果某个会话处于活动状态,但是内容没有发生改变,那么对应的文件也没有发生改变,回收机制就会认为它已经很久没有活动了,从而删除它。这是我们不愿意看到的,我们可以通过添加下面简单的代码来解决这个问题:

代码将每 60 秒尝试修改一次。

总结:如果想修改过期时间,修改该变量就行。PHP5采用被动回收机制(),过期的文件不会自行消失,而是通过触发“回收”来处理。

二维码
扫一扫在手机端查看

本文链接:https://by928.com/6269.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线