Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 可以回显会话的大小吗?_Php_Session - Fatal编程技术网

Php 可以回显会话的大小吗?

Php 可以回显会话的大小吗?,php,session,Php,Session,我不知道我的课时是否太多。是否有办法查看会话的大小。 谢谢 拉胡尔 现在,这只是一个估计,因为serialize处理程序不用于序列化会话,但也不会太远 也就是说,除非您在会话中存储了大量的数据,否则您可能不需要担心这个问题。如果您使用的是Apache,请查看您的Apache_ROOT/tmp文件夹,并查找名为sess***************的文件 否则,从中获取脚本并使用array\u size($\u SESSION)调用它。这可能与精确值略有不同(取决于PHP模块完成的压缩/优化)。这

我不知道我的课时是否太多。是否有办法查看会话的大小。 谢谢 拉胡尔

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


也就是说,除非您在会话中存储了大量的数据,否则您可能不需要担心这个问题。

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

否则,从中获取脚本并使用
array\u size($\u SESSION)
调用它。这可能与精确值略有不同(取决于PHP模块完成的压缩/优化)。

这:

echo strlen(session_encode());
将为您提供$\u会话使用的磁盘空间量(假定SESSION.save\u handler是默认值文件),因为SESSION\u encode()返回的字符串与会话文件中存储的字符串相同

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

在默认Apache设置中,您可以通过以下方式查看存储在磁盘上的会话数据:

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

我很好奇,我以为会议的大小限制完全是基于你的记忆,还有其他因素吗?我问这个问题是因为我在用户会话中存储了大量的数据。我想这是可行的,因为strlen给出了字符数。每个字符都是1kb。。如果我错了,请纠正我。@Rahul-每个字符都是一个字节。我认为会话没有实际大小限制,但如果有大量数据,则在会话创建期间取消序列化需要更长的时间。限制会话大小的因素有两个:单个脚本可用的内存量,以及用于存储请求之间串行会话的可用空间量(对于Apache,通常是磁盘上的临时文件,不过*nix可能会将这些文件缓存在可用内存中)。前者(php内存限制)将首先耗尽请记住,某些配置可能会将会话存储在/tmp以外的位置。您需要检查您的PHP配置以确保.paste-it.net处于脱机状态,是否有指向脚本的其他链接?
session_write_close();
echo file_get_contents(sys_get_temp_dir() . 'sess_' . session_id());