class FileSessionHandler implements SessionHandlerInterface
{
private $savePath;
/**
* 调用 session_start 调用
*
* @param string $savePath
* @param string $sessionName
* @return bool
*/
function open($savePath, $sessionName)
{
echo "open.\n";
$this->savePath = $savePath;
if (!is_dir($this->savePath)) {
mkdir($this->savePath, 0777);
}
return true;
}
/**
* session 执行完毕调用
*
* @return bool
*/
function close()
{
echo "close.\n";
return true;
}
/**
* 获取session数据调用
*
* @param string $id
* @return string
*/
function read($id)
{
echo "read.\n";
return (string)@file_get_contents("$this->savePath/sess_$id");
}
/**
* session赋值调用
*
* @param string $id
* @param string $data
* @return bool
*/
function write($id, $data)
{
echo "write.\n";
return file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true;
}
/**
* 调用session_destory
*
* @param string $id
* @return bool
*/
function destroy($id)
{
echo "destroy.\n";
$file = "$this->savePath/sess_$id";
if (file_exists($file)) {
unlink($file);
}
return true;
}
/**
* 过期调用
*
* @param int $maxlifetime
* @return bool
*/
function gc($maxlifetime)
{
echo "gc.\n";
foreach (glob("$this->savePath/sess_*") as $file) {
if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
unlink($file);
}
}
return true;
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。