为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 自定义session储存 FILE 方式类

标签:
PHP

自定义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();

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消