摘要:看了很多资料,都说在使用使用session_set_save_handler函数前,先要配置php.ini文件,session.save_h...
看了很多资料,都说在使用使用session_set_save_handler函数前,先要配置php.ini文件,session.save_handler=user ,否则,session_set_save_handler()不会生效。但是自己亲自动手,却不是这样的,php.ini的配置未改,使用了session_set_save_handler也是正常的。
<?php
header('Content-Type:text/html;charset=utf-8');
session_set_save_handler('open','close','read','write','destroy','gc');
session_start();
function open($save_path, $session_name){
echo 'open<br>';
return true;
}
function close(){
echo 'close<br>';
return true;
}
function read($sid){
echo 'read<br>';
}
function write($sid, $data){
echo 'write<br>';
}
function destroy($sid){
echo 'destroy<br>';
}
function gc($maxlifetime){
echo 'gc<br>';
}运行结果:
open read write close
session垃圾回收机制:
session.gc_probability = 1
和
session.gc_divisor = 1000
这两个参数合起来定义了在每个会话初始化时启动 gc(garbage collection 垃圾回收)进程的概率。此概率用 gc_probability/gc_divisor 计算得来。例如 1/1000 意味着在每个请求中有 1‰ 的概率启动 gc 进程。
gc进程删除session过期的session数据(或文件)
