多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] ## 语法 ``` session_abort Discard session array changes and finish session session_cache_expire 返回当前缓存的到期时间 session_create_id 生成一个session_id 格式:3cs6in3dpv4pmnf7ghs1pk0ul5 session_decode 解码会话数据 session_destroy 销毁一个会话中的全部数据 session_encode 将当前会话数据编码为一个字符串 session_id 获取/设置当前会话 ID session_module_name 获取/设置会话模块名称 session_name 读取/设置会话名称 session_regenerate_id 使用新生成的会话 ID 更新现有会话 ID session_register_shutdown 关闭会话 session_reset 回复为覆盖前的值 session_save_path 读取/设置当前会话的保存路径 session_set_cookie_params 设置会话 cookie 参数 session_set_save_handler 设置用户自定义会话存储函数 session_start 启动新会话或者重用现有会话 session_status 返回当前会话状态 session_unset 释放所有的会话变量 session_write_close Write session data and end session ``` ## 实例 ### session_cache_expire 自定义过期时间 - 请求开始的时候,缓存到期时间会被重置为 180,默认值设置在`session.cache_expire` - 需要在 `session_start`前调用`session_cache_expire` ``` var_dump(ini_get("session.cache_expire"));//180 session_start(); var_dump(session_cache_expire(110)); //180 var_dump(session_cache_expire());//110 ``` ### session_create_id 自定义设置session_id ``` session_start(); // php>7.1 $sessionId =session_create_id("prefix-"); session_id($sessionId); ``` ### session_decode / session_encode 序列化 session ``` session_start(); $data = session_encode(); var_dump($data); // __hash__|a:1:{s:32:"742a41cdb68ca3b802fefef2ae5b04d6";.... // 并且使用解码后的数据填充 $_SESSION 超级全局变量 session_decode($data); ``` ### 设置session存储方式 -默认存储为 files ,可以设置为 pgsql ,redis 等 ``` session_module_name('redis'); // or pgsql or redis etc session_save_path('127.0.0.1:6379'); // 可以设置多个 //session_save_path('127.0.0.1:6379,otherhost:11211:60') echo session_module_name(); // redis if(session_module_name() !== 'redis'){ // throw an exception maybe } session_start(); ``` 以redis 的方式存入 ### session_name 设置session_id 的名称 ``` session_name("ANT_SESSION"); session_start(); ``` ### session_save_path 设置 session 保存位置 ``` session_save_path("session"); session_start(); ``` ### session_set_save_handler 自定义函数 实现一个集成 sessionhandler 的函数 ``` ```