php实现当前用户在线人数
原理:根据不同的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)."人在线";
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。