class sessionEx
{
/**
* 根据sessionid删除
*
* @param type $sessionid
*/
public static function unlinkSession($sessionid)
{
$file=ini_get("session.save_path").DS."sess_".$sessionid;
//echo $file;
unlink($file);
}
/**
* 获取所有session
*
* @return array 返回全部sessionis数组
*/
public static function getAllSessionID()
{
$file=ini_get("session.save_path").DS."sess_*";
$ids=[];
foreach(glob($file) as $filename){
$ids[]= str_replace("sess_","",basename($filename));
}
return $ids;
}
/**
* 根据session获取session数据
*
* @param type $sessionid
* @return stdClass session存在返回session对象,否则返回null
*/
public static function getSession($sessionid)
{
$file=ini_get("session.save_path").DS."sess_".$sessionid;
if(is_file($file))
{
return commonModel::sess_unserializes(file_get_contents($file));
}
return null;
}
/**
* session文件内容反序列化
*
* @param type $data_value session内容
* @return \stdClass session对象
*/
public static function sess_unserializes($data_value) {
$vars = preg_split(
'/([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*)\\|/',
$data_value, -1, PREG_SPLIT_NO_EMPTY |
PREG_SPLIT_DELIM_CAPTURE
);
$result=new stdClass();
for ($i = 0; isset($vars[$i]); $i++) {
$result->{$vars[$i++]} = unserialize($vars[$i]);
}
return $result;
}
}