91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php session類

發布時間:2020-07-09 13:15:51 來源:網絡 閱讀:837 作者:Lee_吉 欄目:web開發
<?php
namespace dollarphp;
use Medoo\Medoo;
/**
 * @desc:session類
 * @author [Lee] <[<complet@163.com>]>
 */
class SessionDeal{
    private $database;  // 數據庫對象
    private $redis;  // redis對象
    public $config_db = array(  // 數據庫配置
                    'database_type' => 'mysql', # 數據庫類型
                    'database_name' => 'test',  # 數據庫名
                    'server' => 'localhost',    # 主機
                    'username' => 'root',       # 用戶名
                    'password' => '123456',     # 密碼
                    'port' => 3306,             # 端口
                    'charset' => 'utf8'         # 字符集
                );
    public $config_rs = array(  // redis配置
                    'host' => 'x.x.x.x',    # 主機
                    'port' => 'xx',         # 端口
                    'pass' => 'xxxx'        # 密碼
                );
    /*
     session初始化函數(實例化數據庫對象和redis對象)
     */
    function open(){
        $config_db = $this->config_db;
        $config_rs = $this->config_rs;
        $database = new Medoo($config_db);
        $redis = new phpredis($config_rs);
        $this->database = $database;
        $this->redis = $redis;
        return true;
    }
    /*
     寫入session
     @param id sessionID
     @param val session值
     @param expire 超時時間 單位:秒
     */
    function write($id,$val,$expire){
        $database = $this->database;
        $redis = $this->redis;
        $db_expire = $expire + time();
        $rs_expire = $expire;
        $sql = "insert into `session` (id,value,expire) values ('{$id}','{$val}','{$db_expire}')";
        $ret_db = $database->query($sql)->rowCount();
        $ret_rs = $redis->rsetexp($id,$val,$rs_expire);
        return true;
    }
    /*
     獲取session值
     @param id sessionID
     @return val session值
     */
    function read($id){
        $database = $this->database;
        $redis = $this->redis;
        $time = time();
        $ret_rs = $redis->rget($id);
        if($ret_rs){  // 如果redis中有值
            $val = $ret_rs;
        }else{  // 否則從數據庫中取值
            $sql = "select value from `session` where id='{$id}' and expire<{$time}";
            $ret_db = $database->query($sql)->fetchColumn();
            $val = $ret_db;
        }
        return $val;
    }
    /*
     銷毀session(刪除數據庫中的session)
     @param id sessionID
     */
    function destroy($id){
        $database = $this->database;
        $redis = $this->redis;
        $ret_rs = $redis->rdel($id);
        $sql = "delete from `session` where id='{$id}'";
        $ret_db = $database->query($sql)->rowCount();
        if($ret_rs && $ret_db){
            return true;
        }else{
            return false;
        }
    }
    /*
     session關閉函數(相當于析構函數,可以做數據庫關閉操作)
     */
    function close(){
        $database = $this->database;
        $redis = $this->redis;
        $database->close();
        $redis->close();
        return true;
    }
    /*
     垃圾回收(不定期銷毀過期session)
     @param maxtime 最大時間
     */
    function gc($maxtime){
        return true;
    }
}
// $handler = new SessionDeal();
// session_set_save_handler(
//         array($handler, 'open'),
//         array($handler, 'close'),
//         array($handler, 'read'),
//         array($handler, 'write'),
//         array($handler, 'destroy'),
//         array($handler, 'gc')
//     );
// register_shutdown_function('session_write_close');
// session_start();
// $_SESSION['name']  =  'value';
// $ret = $_SESSION['name'];
// echo $ret.PHP_EOL;
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

札达县| 丹巴县| 青神县| 洪湖市| 安泽县| 岑巩县| 马边| 如东县| 漳州市| 万载县| 武城县| 南平市| 阿坝| 孝昌县| 丰宁| 平舆县| 乌兰浩特市| 双辽市| 嵩明县| 财经| 鹤庆县| 应用必备| 吉安市| 仁寿县| 铜川市| 隆尧县| 开化县| 茌平县| 宝丰县| 武隆县| 澄城县| 栾城县| 鄂托克旗| 平阴县| 颍上县| 济宁市| 汉阴县| 昭通市| 鄢陵县| 漳浦县| 德惠市|