PHP 自定義session儲存 FILE 方式類

25minutes發表於2021-09-09

自定義session儲存 FILE 方式類

在php.ini配置檔案中更改設定 (Registered_save_handlers 有三種方式 files user memcache)

session.save_handler = user 表示使用者自定義session類

 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
';

            return true;

        }

        //關閉

        public static function close(){

            echo 'close
';

           return true;

        }

        //讀取 echo 

        public static function read($sid){

            echo 'read
';   

            $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
'; 

            $filename = self::$path.'yang_'.$sid;

            echo $filename.'
';

            echo $data.'
';

            return  file_put_contents($filename, $data);            

        }

        //銷燬 session_destroy

        public static function destroy($sid){

            echo 'destroy
';     

            $filename = self::$path.'yang_'.$sid;

            echo $filename.'
';

            return @unlink($filename);

             

        }

        //回收垃圾

        public static function gc($maxlifetime){

            echo 'gc
';

            foreach(glob(self::$path.'yang_*') as $file){

                echo $file.'
';

                //只刪除過期

                if((filemtime($file)+$maxlifetime)

                unlink($file);

                }

            }

        }

 }

  

 FileSession::start();

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4328/viewspace-2801673/,如需轉載,請註明出處,否則將追究法律責任。

相關文章