session的学习笔记

袁志蒙 3823次浏览

摘要:看了很多资料,都说在使用使用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数据(或文件)


随机内容

表情

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~