Я не знаю, слишком ли велики мои сеансы. Есть ли способ увидеть размер сеанса. Благодаря, Рахул
Может ли эхо размер СЕССИИ?
Ответ 1
$size_of_session_estimate = strlen( serialize( $_SESSION ) );
Теперь это просто оценка, так как обработчик сериализации не используется для сериализации сеансов, но он также не будет слишком далеко.
При этом, если вы не храните глупое количество данных в сеансе, вам, вероятно, не нужно беспокоиться об этом.
Ответ 2
Если вы используете Apache, загляните в свою папку APACHE_ROOT/tmp
и найдите файлы с именем sess_***********
.
В противном случае возьмите script из здесь и вызовите его с помощью array_size($_SESSION)
. Это может немного отличаться от точного значения (в зависимости от сжатия/оптимизации, выполняемого вашим модулем PHP).
Ответ 3
Это:
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());