中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

PHP實現的SESSION管理類庫
來源:易賢網 閱讀:2384 次 日期:2015-04-15 15:14:44
溫馨提示:易賢網小編為您整理了“PHP實現的SESSION管理類庫”,方便廣大網友查閱!

PHP實現的SESSION管理類庫,可交SESSION存儲到數據庫,memcached,文件,按目錄存儲文件,具體代碼如下:

<?php

/**

* 慧佳工作室 -> hoojar studio

*

* 模塊: wcore/session.php

* 簡述: 專門處理SESSION的庫

* 作者: woods·zhang ->

* 版本: $Id: session.php 1 2012-11-20 05:55:12Z Administrator $

* 版權: Copyright 2006-2013 慧佳工作室擁有此系統所有版權等知識產權

*

*/

class wcore_session

{

/**

* SESSION數組

*

* @var array

*/

public $data = array();

/**

* 將SESSION存儲在哪種物質類型中

*

* @var string 存儲方式如下

* dbmax:65535會話內容存儲在數據庫表中

* mdbmax:255會話內容存儲在數據庫內存表中

* memmax:unlimit會話內容存儲在Memcache緩存中

* filemax:unlimit會話內容存儲在文件中

* dirmax:unlimit會話內容存儲在分目錄的文件中

*/

private $_type = 'file';

/**

* 當存儲方式為file或dir時SESSION文件所存儲的路徑

*

* @var string 會話文件存儲路徑

*/

private $_path = '/tmp';

/**

* 連接數據的模塊對象

*

* @var wcore_mysql

*/

private $_db = null;

/**

* 當SESSION存儲在數據庫中時要操作的數據表

*

* @var string 數據庫表名稱 (分普通表[session_wcore]與內存表[session_mem])

*/

private $_opt = 'session_wcore';

/**

* 連接MEM的模塊對象

*

* @var wcore_mem

*/

private $_mem = null;

/**

* SESSION的壽命,默認為30分鐘以秒為單位

*

* @var integer

*/

private $_life_time = 1800;

/**

* SESSION 前綴

*

* @var string

*/

private $_prefix = 'ws';

/**

* IP地址

*

* @var integer

*/

private $_ip = '';

/**

* 初始化SESSION

*

* @param string $type 會話的存儲方式

* @param integer $ltime 會話壽命時間以分鐘為單位

* @param string $path 會話文件存儲的路徑

* @param string $prefix 會話文件前綴

* @param boolean $start 是否馬上啟用SESSION處理

*/

public function __construct($type = 'file', $ltime = 30, $path = '', $prefix = 'ws', $start = true)

{

$this->_prefix = $prefix;

$this->_type = strtolower($type);

if ($this->_type == 'file' || $this->_type == 'dir')

{

$this->_path = ($path && file_exists($path)) ? $path : get_cfg_var('session.save_path');

wcore_fso::make_dir($this->_path); //處理SESSION存儲的路徑

}

$this->_life_time = ($ltime && is_numeric($ltime)) ? $ltime * 60 : get_cfg_var('session.gc_maxlifetime');

$this->_ip = wcore_utils::get_ip();

session_set_save_handler(array(&$this, 'open'), array(&$this, 'close'),array(&$this, 'read'),

array(&$this, 'write'),array(&$this, 'destroy'),array(&$this, 'gc'));

register_shutdown_function('session_write_close');

/**

* 是否馬上啟用SESSION處理

*/

if ($start)

{

ini_set('session.use_cookies', 'On');

ini_set('session.use_trans_sid', 'Off');

session_set_cookie_params(0, '/');

session_start();

}

$this->data = & $_SESSION;

}

/**

* 打開 SESSION

*

* @param string $path 會話存儲路徑

* @param string $name 會話名稱

* @return boolean

*/

public function open($path, $name)

{

if ($this->_type == 'db' || $this->_type == 'mdb') //以數據庫方式來處理SESSION

{

$this->_db = wcore_object::mdb();

if ($this->_type == 'mdb')

{

$this->_opt = 'session_mem';

}

}

else if ($this->_type == 'mem') //以Memcache緩沖方式來處理SESSION

{

$this->_mem = wcore_object::mem();

$this->_mem->expire = $this->_life_time / 60;

}

$this->gc(0); //刪除失效的SESSION

return true;

}

/**

* 關閉SESSION

*

* @return boolean

*/

public function close() { return true; }

/**

* 獲取SESSION編號

*

* @return string

*/

public function get_id()

{

return session_id();

}

/**

* 讀取SESSION內容

*

* @param string $sid 會話唯一標識

* @return string 會話值

*/

public function read($sid)

{

/**

* 以數據庫方式來處理SESSION

*/

if ($this->_type == 'db' || $this->_type == 'mdb')

{

$res = $this->_db->fetch_row("SELECT sData FROM {$this->_opt} WHERE sId = '{$sid}';");

return ($res) ? $res['sData'] : '';

}

/**

* 以Memcache緩沖方式來處理SESSION

*/

if ($this->_type == 'mem')

{

return $this->_mem->get('session', $sid);

}

/**

* 以文件系統的方式來處理SESSION

*/

if ($this->_type == 'dir')

{

$sfile = "{$this->_path}/{$sid[0]}/{$this->_prefix}-{$sid}";

}

else

{

$sfile = "{$this->_path}/{$this->_prefix}-{$sid}";

}

if (!file_exists($sfile))

{

return '';

}

return (string)file_get_contents($sfile);

}

/**

* 寫入SESSION內容

*

* @param string $sid 會話唯一標識

* @param string $sdata 會話內容

* @return boolean

*/

public function write($sid, $sdata)

{

/**

* SESSION數據為空則清除先前數據

*/

if (empty($sdata))

{

$this->destroy($sid);

return false;

}

/**

* 以數據庫方式來處理SESSION

*/

if ($this->_type == 'db' || $this->_type == 'mdb')

{

$expires = time() + $this->_life_time; //SESSION的有效期

$sql = "REPLACE INTO {$this->_opt} (sId, sData, sIp, sExpires) VALUES ('{$sid}', '{$sdata}', '{$this->_ip}', {$expires})";

$this->_db->query($sql);

return ($this->_db->affected_rows() > 0) ? true : false;

}

/**

* 以Memcache緩沖方式來處理SESSION

*/

if ($this->_type == 'mem')

{

$expires = $this->_life_time / 60; //SESSION的有效期

return $this->_mem->set('session', $sid, $sdata, $expires);

}

/**

* 以文件系統的方式來處理SESSION

*/

if ($this->_type == 'dir')

{

$sfile = "{$this->_path}/{$sid[0]}";

wcore_fso::make_dir($sfile); //處理SESSION存儲的路徑

$sfile = "{$sfile}/{$this->_prefix}-{$sid}";

}

else

{

$sfile = "{$this->_path}/{$this->_prefix}-{$sid}";

}

return file_put_contents($sfile, $sdata);

}

/**

* 清除SESSION

*

* @param string $sid 會話唯一標識

* @return boolean 清除成功返回true否則為false

*/

public function destroy($sid = '')

{

if (empty($sid))

{

$sid = $this->get_id();

}

/**

* 以數據庫方式來處理SESSION

*/

if ($this->_type == 'db' || $this->_type == 'mdb')

{

$this->_db->query("DELETE FROM {$this->_opt} WHERE sId = '{$sid}'");

return ($this->_db->affected_rows() > 0) ? true : false;

}

/**

* 以Memcache緩沖方式來處理SESSION

*/

if ($this->_type == 'mem')

{

return $this->_mem->del('session', $sid);

}

/**

* 以文件系統的方式來處理SESSION

*/

if ($this->_type == 'dir')

{

$sfile = "{$this->_path}/{$sid[0]}/{$this->_prefix}-{$sid}";

}

else

{

$sfile = "{$this->_path}/{$this->_prefix}-{$sid}";

}

return !empty($sfile) ? @unlink($sfile) : true;

}

/**

* 定時去清除過期的SESSION

*

* @param integer $max_life_time

* @return boolean

*/

public function gc($max_life_time)

{

if ($this->_type == 'db' || $this->_type == 'mdb') //以數據庫方式來處理SESSION

{

$this->_db->query("DELETE FROM {$this->_opt} WHERE sExpires < " . time());

}

else if ($this->_type == 'file') //以文件系統的方式來處理SESSION

{

self::kill_sfile($this->_path);

}

else if ($this->_type == 'dir') //以目錄分層文件的方式來處理SESSION

{

$dir = 'abcdefghijklmnopqrstuvwxyz';

$len = strlen($dir);

for ($i = 0; $i < $len; ++$i)

{

self::kill_sfile("{$this->_path}/{$dir[$i]}");

}

}

return true;

}

/**

* 刪除session文件

*

* @param string $dir 會話文件所在目錄

* @param boolean $no_check 是否進行過期判斷

* @return boolean

*/

private function kill_sfile($dir, $no_check = false)

{

if ($no_check) //直接刪除SESSION文件不進行過期判斷

{

foreach (glob("{$dir}/{$this->_prefix}-*") as $filename)

{

@unlink($filename);

}

return true;

}

foreach (glob("{$dir}/{$this->_prefix}-*") as $filename)

{

if (filemtime($filename) + $this->_life_time < time())

{

@unlink($filename);

}

}

return true;

}

/**

* 清空所有SESSION

*

* @return boolean

*/

public function cleanup()

{

switch ($this->_type)

{

case 'mem':

return $this->_mem->flush();

case 'db':

case 'mdb':

return $this->_db->truncate($this->_opt);

case 'file':

return self::kill_sfile($this->_path, true);

case 'dir':

$dir = 'abcdefghijklmnopqrstuvwxyz';

$len = strlen($dir);

for ($i = 0; $i < $len; ++$i)

{

wcore_fso::rm_dir($dir[$i]);

}

default:

return true;

}

}

}

?>

更多信息請查看IT技術專欄

更多信息請查看網絡編程
易賢網手機網站地址:PHP實現的SESSION管理類庫
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
久久久一本精品99久久精品66| 国产日韩一区二区三区在线播放| 最新国产の精品合集bt伙计| 国产日韩欧美不卡在线| 欧美视频在线观看视频极品| 欧美激情一区二区三区不卡| 久久资源在线| 久久精品在线播放| 久久精品中文字幕一区二区三区| 欧美影视一区| 久久精品视频在线看| 久久精品成人| 久久一区中文字幕| 欧美99久久| 欧美激情第3页| 欧美日韩黄色一区二区| 欧美日本韩国一区| 欧美日韩综合另类| 国产欧美日韩精品丝袜高跟鞋 | 久久精品男女| 久久免费国产精品| 欧美国产综合| 国产精品久久久久久av下载红粉| 国产精品久久久久三级| 国产女主播一区二区三区| 国产在线国偷精品产拍免费yy| 国内外成人免费激情在线视频网站| 伊人成人网在线看| 亚洲蜜桃精久久久久久久| 亚洲夜晚福利在线观看| 麻豆精品视频在线观看| 免费在线观看日韩欧美| 欧美日韩免费观看一区二区三区| 国产精品久久久久久久久久尿 | 欧美欧美全黄| 国产精品亚洲网站| 亚洲高清视频在线观看| 99xxxx成人网| 久久大逼视频| 欧美激情中文字幕一区二区| 国产精品日韩在线播放| 亚洲第一在线综合网站| 亚洲性感美女99在线| 久久久久久久网| 欧美日韩999| 国内精品久久久久久影视8| 亚洲精品美女91| 欧美在线视频在线播放完整版免费观看 | 国产农村妇女精品一二区| 激情综合色丁香一区二区| 99热免费精品在线观看| 久久精品国亚洲| 欧美丝袜一区二区三区| 在线成人国产| 亚洲免费在线观看视频| 欧美精品大片| 在线日韩中文字幕| 欧美尤物巨大精品爽| 欧美日韩免费观看一区=区三区| 国产在线麻豆精品观看| 亚洲欧美在线视频观看| 欧美人与性动交cc0o| 在线观看欧美激情| 翔田千里一区二区| 欧美三级乱码| 一本久久a久久精品亚洲| 欧美成va人片在线观看| 国产在线高清精品| 午夜精品三级视频福利| 欧美日韩成人在线| 亚洲国产精品一区二区三区| 性欧美18~19sex高清播放| 欧美日韩卡一卡二| 亚洲精品欧美| 男人天堂欧美日韩| 伊伊综合在线| 久久激情中文| 国产一区二区无遮挡| 性色av一区二区三区| 国产精品免费一区豆花| 亚洲一区影院| 国产精品美女一区二区| 亚洲综合成人婷婷小说| 国产精品美女| 亚洲欧美国产视频| 国产精品天天看| 欧美日本二区| 亚洲精品免费电影| 欧美电影在线播放| 亚洲人成人一区二区在线观看| 久久青青草综合| 一区二区三区中文在线观看| 久久国产精品亚洲va麻豆| 国产人久久人人人人爽| 欧美一区二区三区男人的天堂| 影音先锋一区| 日韩视频久久| 国产精品一区二区三区观看| 黄色亚洲网站| 日韩手机在线导航| 久久久美女艺术照精彩视频福利播放 | 欧美日韩国产在线一区| 在线成人av| 久久激情视频免费观看| 国产精品午夜在线| 日韩视频在线一区二区| 免费中文日韩| 一区二区欧美在线| 亚洲欧美日韩国产成人| 伊人久久久大香线蕉综合直播 | 欧美日韩另类字幕中文| 狠狠干成人综合网| 久久久久久久999| 国产精品入口麻豆原神| 久久综合九色综合欧美狠狠| 香蕉成人伊视频在线观看| 一本色道久久88亚洲综合88| 欧美日韩中文字幕| 亚洲欧美中文另类| 国产一区在线视频| 免费欧美在线| 免费成人在线视频网站| 亚洲久久一区二区| 国产精品日日做人人爱| 欧美在线综合视频| 精品不卡一区二区三区| 欧美国产精品va在线观看| 亚洲青涩在线| 国产精品影片在线观看| 久久综合九色欧美综合狠狠| 亚洲国产日韩一区二区| 欧美日韩一区二区三区视频| 欧美在线综合视频| 日韩亚洲一区在线播放| 国产日韩欧美另类| 欧美精品国产一区二区| 欧美一级在线播放| 亚洲第一伊人| 国产精品激情| 欧美激情bt| 久久精品中文字幕一区| 99re66热这里只有精品3直播| 国产精品中文字幕在线观看| 欧美多人爱爱视频网站| 欧美一区二区在线看| 99国产精品视频免费观看一公开| 国产精品久久国产精品99gif | 99国产精品久久久久老师 | 欧美日韩一区高清| 狼人天天伊人久久| 亚洲免费视频观看| 红桃视频欧美| 欧美视频导航| 欧美国产三区| 欧美www视频在线观看| 性欧美大战久久久久久久免费观看| 在线观看亚洲一区| 黄色成人精品网站| 国产精品免费视频xxxx| 欧美日韩成人综合在线一区二区| 久久精视频免费在线久久完整在线看| 亚洲精品美女| 亚洲日本aⅴ片在线观看香蕉| 国产日韩欧美在线视频观看| 欧美色视频一区| 欧美国产国产综合| 免费看的黄色欧美网站| 久久久久久尹人网香蕉| 久久国产一区二区三区| 欧美一级视频| 久久精品国产视频| 午夜宅男久久久| 欧美在线不卡视频| 欧美一区二区观看视频| 亚洲欧美成人一区二区在线电影| 制服丝袜激情欧洲亚洲| 亚洲视频观看| 亚洲欧美久久久| 久久精品日产第一区二区| 久久久久久有精品国产| 久久久久久久999| 老司机aⅴ在线精品导航| 免费在线国产精品| 欧美日韩国产免费| 国产精品成人一区二区网站软件| 欧美亚洲不卡| 国产亚洲成av人片在线观看桃| 国产视频综合在线| 亚洲国产精彩中文乱码av在线播放| 亚洲精品国产拍免费91在线| 日韩一区二区福利| 亚洲欧美韩国| 久久综合久色欧美综合狠狠 | 欧美系列一区| 亚洲午夜激情网站| 亚洲一级黄色av| 久久高清免费观看| 欧美韩国日本综合| 国产精品欧美在线| 怡红院av一区二区三区|