温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP 自定义session储存 FILE 方式类   高洛峰 细说PHP

发布时间:2020-08-01 02:44:39 来源:网络 阅读:467 作者:津沙港湾 栏目:web开发

自定义session储存 FILE 方式类

在php.ini配置文件中更改设置 (Registered_save_handlers 有三种方式 files user memcache)

session.save_handler = user 表示用户自定义session类

<?php 
/*
 * 自定义session储存File方式的类
 * 打开
 * 
 * 关闭
 * 
 * 读取
 * 
 * 写入
 * 
 * 销毁
 * 
 * 回收
 * 
 */
 class FileSession{
          
      private  static $path = "d:/wamp/sfile/";
      
      public static function start($path= "d:/wamp/sfile/"){
          self::$path = $path;
          //注册自定义函数
          session_set_save_handler(
              array(__CLASS__,'open'), 
               array(__CLASS__,'close'),
               array(__CLASS__,'read'),
               array(__CLASS__,'write'),
               array(__CLASS__,'destroy'),
               array(__CLASS__, 'gc'));
          //开启会话
          session_start();
      }
      
        //开始 sesssion_start()
        public static function  open($path,$name){
            echo 'open<br/>';
            return true;
        }
        //关闭
        public static function close(){
            echo 'close<br/>';
           return true;
        }
        //读取 echo 
        public static function read($sid){
            echo 'read<br/>';   
            $filename = self::$path.'yang_'.$sid;
           // return 'username|s:12:"津沙港湾";age|i:33;sex|s:4:"male";';
           return @file_get_contents($filename);
        }
        //写入 $_SESSION['username']='yang'
        public static function write($sid,$data){
            echo 'write<br/>'; 
            $filename = self::$path.'yang_'.$sid;
            echo $filename.'<br/>';
            echo $data.'<br/>';
            return  file_put_contents($filename, $data);            
        }
        //销毁 session_destroy
        public static function destroy($sid){
            echo 'destroy<br/>';     
            $filename = self::$path.'yang_'.$sid;
            echo $filename.'<br/>';
            return @unlink($filename);
            
        }
        //回收垃圾
        public static function gc($maxlifetime){
            echo 'gc<br/>';
            foreach(glob(self::$path.'yang_*') as $file){
                echo $file.'<br/>';
                //只删除过期
                if((filemtime($file)+$maxlifetime) < time()){
                unlink($file);
                }
            }
        }
 }
 
 FileSession::start();


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI