PHP Conference Japan 2024

session_module_name

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

session_module_name取得及/或設定目前的 Session 模組

說明

session_module_name(?字串 $module = null): 字串|false

session_module_name() 會取得目前 session 模組的名稱,也稱為 session.save_handler

參數

module

如果指定 module 且不為 null,則會使用該模組。禁止將 "user" 傳遞給此參數。必須呼叫 session_set_save_handler() 來設定使用者自訂的 session 處理程式。

傳回值

傳回目前 session 模組的名稱,失敗時則傳回 false

更新日誌

版本 說明
8.0.0 module 現在可以為 null。
7.2.0 現在明確禁止將模組名稱設定為 "user"。以前,這會被默默忽略。
新增註解

使用者貢獻的註解 2 則註解

4
raees at steelbrain dot com dot pk
10 年前
此函式用於在網站或腳本層級設定 Session 模組。

全域設定可以在 php.ini 的 [Session] 區段中完成,名稱為 "session.save_handler"。預設情況下,session 會儲存在檔案中,如下所示
session.save_handler = files

但是使用此設定,您可以將您的其中一個網站設定為使用其他 session 模組(如果您已安裝它們,並且使用 PHP 載入擴充功能),如下所示
<?php

// 注意:您必須在使用 session_start(); 啟動 session 之前使用此函式,才能使其正常運作
session_module_name('memcache'); // 或 pgsql 或 redis 等

// 如果模組不是檔案,您還需要定義儲存路徑,如下所示:
session_save_path('localhost:11211'); // memcache 使用端口 11211

// 或者您可以使用多個來進行負載平衡:
session_save_path('localhost:11211:41,otherhost:11211:60') // 第一部分是主機名稱或 socket 路徑,接下來是端口,最後是該伺服器的權重

//此函式也會傳回目前 session 模組的值。
echo session_module_name(); // 在我們的例子中會印出 memcache

// 或者可能進行檢查
if(session_module_name() != 'memcache'){
// 執行某些操作,例如拋出例外
}
-2
匿名
9 年前
正在尋找一個相當完整的模組列表,並找到了 http://stackoverflow.com/questions/8415962/what-exactly-phps-function-session-module-name-is-for 但還有更多。
To Top