session_gc()
(PHP 7 >= 7.1.0)
执行会话数据垃圾收集
说明
session_gc(void): int
session_gc()用于执行会话数据GC(垃圾收集)。 PHP默认情况下会执行基于概率的会话GC。基于概率的GC可以工作,但是问题很少。
因此,建议对于使用UNIX类系统的生产系统,例如使用“ cron”,定期执行GC。通过将session.gc_probability设置为0,确保禁用基于概率的GC。
返回值
session_gc()返回成功删除的会话数据的数量,失败则返回FALSE。旧的保存处理程序不返回已删除会话数据的数量,而仅返回成功/失败标志。在这种情况下,无论实际删除的数据如何,删除的会话数据的数量都变为1。
范例
Example #1session_gc()example for task managers like cron
<?php // Note: This script should be executed by the same user of web server process. // Need active session to initialize session data storage access. session_start(); // Executes GC immediately session_gc(); // Clean up session ID created by session_gc() session_destroy(); ?>
Example #2session_gc()example for user accessible script
<?php // Note: session_gc() is recommended to be used by task manager script, but // it may be used as follows. // Used for last GC time check $gc_time = '/tmp/php_session_last_gc'; $gc_period = 1800; session_start(); // Execute GC only when GC period elapsed. // i.e. Calling session_gc() every request is waste of resources. if (file_exists($gc_time)) { if (filemtime($gc_time) < time() - $gc_period) { session_gc(); touch($gc_time); } } else { touch($gc_time); } ?>
参见
session_start()
启动新会话或者重用现有会话session_destroy()
销毁一个会话中的全部数据- session.gc_probability