可以回应SESSION的大小吗?

时间:2009-09-06 18:55:13

标签: php session

我不知道我的会话是否太大了。有没有办法看到会话的大小。 谢谢, 拉胡

3 个答案:

答案 0 :(得分:17)

$size_of_session_estimate = strlen( serialize( $_SESSION ) );

现在,这只是一个估计值,因为序列化处理程序用于序列化会话,但它也不会太远。

话虽如此,除非您在会话中存储了大量数据,否则您可能不必担心这一点。

答案 1 :(得分:8)

如果您使用的是Apache,请查看APACHE_ROOT/tmp文件夹并查找名为sess_***********的文件。

否则从here获取脚本并使用array_size($_SESSION)进行调用。这可能与确切的值略有不同(取决于PHP模块执行的压缩/优化)。

答案 2 :(得分:5)

此:

echo strlen(session_encode());

将为您提供$ _SESSION使用的磁盘空间量(假设 session.save_handler 是默认值文件),因为 session_encode()返回与存储在会话文件中的字符串相同的字符串。

它还可以更好地指示所使用的内存量,因为 session_encode()添加的元数据少于 serialize()

在默认的Apache设置中,您可以看到存储在磁盘上的会话数据:

session_write_close();
echo file_get_contents(sys_get_temp_dir() . 'sess_' . session_id());