计算活动会话的数量

时间:2012-06-29 19:56:10

标签: php

  

可能重复:
  Find Number of Open Sessions
  Access active sessions in PHP

当用户到达网页时,会为用户创建一个会话变量,我想知道是否可以计算活动会话的数量?

3 个答案:

答案 0 :(得分:3)

  

当用户到达网页时,会为用户创建一个会话变量,我想知道是否可以计算活动会话的数量?

您存储的所有东西都可以计算在内。但是,默认情况下,会话中的值是每个用户,PHP不会跟踪所有会话或其他内容。

因此,您需要创建该上下文。例如,您可以编写自己的会话处理程序。

使用PHP 5.4变得更加容易,因为您现在可以扩展标准会话处理程序,只需添加所需的功能。请参阅手册页:The SessionHandler class

那么这怎么可行呢?每次会话在那里时,您都会写入 shared 的数据存储区,即存在活动会话。如果会话被破坏,例如通过垃圾收集或者因为你比较自上次活动以来已经过去的时间和足够的时间,你可以通过共享数据存储来计算它。

答案 1 :(得分:2)

你可能会得到这个会话的数量:

$sessionCount = count(glob(session_save_path()."/*"));

但是,您需要确保正确配置了会话垃圾回收,这样就不会在那里获得死会话文件。

答案 2 :(得分:1)

会话存储在session.save_path(在ini文件)文件夹中的临时文件中。每个文件都以“sess_”开头。我想你可以计算这些文件的数量,以了解有多少会话是活跃的。