改写成类的方式实现:
[PHP] 纯文本查看 复制代码 <?php
class SASession{
private static $path;
public static function start($path = "/tmp/session/"){
self::$path = $path;
// 设置session模式为用户模式,也可以在php.ini这个配置文件中修改
session_module_name("user");
// 注册过程
session_set_save_handler(
array(__CLASS__, "open"),
array(__CLASS__, "close"),
array(__CLASS__, "read"),
array(__CLASS__, "write"),
array(__CLASS__, "destroy"),
array(__CLASS__, "gc"));
session_start();
}
// 开启
public static function open(){
return true;
}
// 关闭
public static function close(){
return true;
}
// 读
public static function read($sid){
$path = self::$path.$sid;
if(file_exists($path)){
return file_get_contents($path);
}else{
return NULL;
}
}
// 写
public static function write($sid, $data){
$path = self::$path.$sid;
return file_put_contents($path, $data);
}
// 销毁
public static function destroy($sid){
$path = self::$path.$sid;
return unlink($path);
}
// 回收
public static function gc($maxlifetime){
$path = self::$path."*";
// 搜索该目录下的所有文件
$files = glob($path);
foreach($files as $file){
// 文件修改时间+最大存活时间 比当前时间早,则说明已过期,删除!
if (filemtime($file) + $maxlifetime < time()) unlink($file);
}
}
}
|