统计当前在线人数
2010-07-17 12:43
344 查看
原理:根据不同的IP统计出当前有多少人在线。实现方式:可以用数据库,也可以用文本。我这里用了文本实现。
<?php
$user_online = "count.php"; //保存人数的文件
touch($user_online);//如果没有此文件,则创建
$timeout = 30;//30秒内没动作者,认为掉线
$user_arr = file_get_contents($user_online);
$user_arr = explode('#',rtrim($user_arr,'#'));print_r($user_arr);
$temp = array();
foreach($user_arr as $value){
$user = explode(",",trim($value));
if (($user[0] != getenv('REMOTE_ADDR')) && ($user[1] > time())) {//如果不是本用户IP并时间没有超时则放入到数组中
array_push($temp,$user[0].",".$user[1]);
}
}
array_push($temp,getenv('REMOTE_ADDR').",".(time() + ($timeout)).'#'); //保存本用户的信息
$user_arr = implode("#",$temp);
//写入文件
$fp = fopen($user_online,"w");
flock($fp,LOCK_EX); //flock() 不能在NFS以及其他的一些网络文件系统中正常工作
fputs($fp,$user_arr);
flock($fp,LOCK_UN);
fclose($fp);
echo "当前有".count($temp)."人在线";
?>
<?php
$user_online = "count.php"; //保存人数的文件
touch($user_online);//如果没有此文件,则创建
$timeout = 30;//30秒内没动作者,认为掉线
$user_arr = file_get_contents($user_online);
$user_arr = explode('#',rtrim($user_arr,'#'));print_r($user_arr);
$temp = array();
foreach($user_arr as $value){
$user = explode(",",trim($value));
if (($user[0] != getenv('REMOTE_ADDR')) && ($user[1] > time())) {//如果不是本用户IP并时间没有超时则放入到数组中
array_push($temp,$user[0].",".$user[1]);
}
}
array_push($temp,getenv('REMOTE_ADDR').",".(time() + ($timeout)).'#'); //保存本用户的信息
$user_arr = implode("#",$temp);
//写入文件
$fp = fopen($user_online,"w");
flock($fp,LOCK_EX); //flock() 不能在NFS以及其他的一些网络文件系统中正常工作
fputs($fp,$user_arr);
flock($fp,LOCK_UN);
fclose($fp);
echo "当前有".count($temp)."人在线";
?>
相关文章推荐
- JSP +Servlet 统计当前在线人数
- PHP统计当前在线人数
- J2EE中统计当前在线人数――HttpSessionBindingListener和HttpSessionListener
- PHP+Memcache统计当前在线人数
- session监听器(可用于统计在线人数,了解系统当前的使用客户 ...
- Java监听器学习 统计当前在线人数
- session监听器(可用于统计在线人数,了解系统当前的使用客户)
- 事件监听之统计当前在线人数案例
- Application全局对象 实现统计当前在线人数和总访问次数
- php统计当前在线人数
- session监听器(可用于统计在线人数,了解系统当前已经登录的使用客户)
- session监听器(可用于统计在线人数,当前客户)
- session监听器(可用于统计在线人数,了解系统当前的使用客户)
- Servlet监听------------例子:统计当前在线人数
- J2EE中统计当前在线人数——HttpSessionBindingListener和HttpSessionListener
- session监听器(可用于统计在线人数,了解系统当前的使用客户)
- 统计当前在线人数,相当准确
- C#统计网站访问总人数和当前在线人数
- 两种统计当前在线人数的方法
- JSP +Servlet 统计当前在线人数