session_module_name

(PHP 4, PHP 5, PHP 7, PHP 8)

session_module_name获取和/或设置当前会话模块

说明

session_module_name(?string $module = null): string|false

session_module_name() 获取当前会话模块的名称,也称为 session.save_handler

参数

module

如果指定了 module 并且不是 null,则将使用该模块。将 "user" 传递给此参数是被禁止的。相反,必须调用 session_set_save_handler() 来设置用户定义的会话处理程序。

返回值

返回当前会话模块的名称,如果失败则返回 false

变更日志

版本 说明
8.0.0 module 现在是可空值。
7.2.0 现在明确禁止将模块名称设置为 "user"。以前,这会被静默忽略。
添加备注

用户贡献的备注 2 notes

raees at steelbrain dot com dot pk
9 年前
此函数用于在站点或脚本级别设置会话模块。

全局配置可以在 php.ini 中的 [Session] 部分进行,名称为 "session.save_handler"。默认情况下,会话保存在文件中,如下所示
session.save_handler = files

但是,使用此配置,您可以将一个网站设置为使用其他会话模块(如果您已安装并使用 PHP 加载了扩展),如下所示
<?php

// 注意:您必须在使用 session_start(); 启动会话之前使用此函数,才能使其正常工作
session_module_name('memcache'); // 或 pgsql 或 redis 等

// 您还需要定义一个保存路径,如果模块不是 files,则可以使用以下方法:
session_save_path('localhost:11211'); // memcache 使用端口 11211

// 或者,您可以使用多个端口进行负载均衡:
session_save_path('localhost:11211:41,otherhost:11211:60') // 第一个部分是主机名或套接字路径,下一个是端口,最后一个是该服务器的权重

// 此函数还会返回当前会话模块的值。
echo session_module_name(); // 在我们的例子中将打印 memcache

// 或者可能是一个检查
if(session_module_name() != 'memcache'){
// 做一些事情,也许抛出异常
}
匿名
9 年前
正在寻找一个相当全面的模块列表,并找到了 http://stackoverflow.com/questions/8415962/what-exactly-phps-function-session-module-name-is-for,但还有更多。
To Top