php实现当前用户在线人数

来源:互联网 发布:小企业会计核算软件 编辑:程序博客网 时间:2024/05/17 04:56

原理:根据不同的IP统计出当前有多少人在线。
实现方式:可以用数据库,也可以用文本。
我这里用了文本实现。

//*****统计当前在线人数            $path=  Yii::app()->basePath."/../assets/count/";            $user_online = $path."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)."人在线"; 


 

0 0