php实现当前用户在线人数

php实现当前用户在线人数


原理:根据不同的IP统计出当前有多少人在线。
实现方式:可以用数据库,也可以用文本。
我这里用了文本实现。
  1. <?php
  2. /**
  3. *@ Date         2010.04.07
  4. *@ Author       华夏之星 PHP100.com
  5. *@ Blog         http://hi.baidu.com/woaidelphi/blog
  6. */
  7. $user_online = "count.php"; //保存人数的文件
  8. touch($user_online);//如果没有此文件,则创建
  9. $timeout = 30;//30秒内没动作者,认为掉线
  10. $user_arr = file_get_contents($user_online);
  11. $user_arr = explode('#',rtrim($user_arr,'#'));print_r($user_arr);
  12. $temp = array();
  13. foreach($user_arr as $value){
  14. $user = explode(",",trim($value));
  15. if (($user[0] != getenv('REMOTE_ADDR')) && ($user[1] > time())) {//如果不是本用户IP并时间没有超时则放入到数组中
  16. array_push($temp,$user[0].",".$user[1]);
  17. }
  18. }
  19. array_push($temp,getenv('REMOTE_ADDR').",".(time() + ($timeout)).'#'); //保存本用户的信息
  20. $user_arr = implode("#",$temp);
  21. //写入文件
  22. $fp = fopen($user_online,"w");
  23. flock($fp,LOCK_EX); //flock() 不能在NFS以及其他的一些网络文件系统中正常工作
  24. fputs($fp,$user_arr);
  25. flock($fp,LOCK_UN);
  26. fclose($fp);
  27. echo "当前有".count($temp)."人在线";
  28. ?>
复制代码

作者: 三里屯摇滚   发布时间: 2011-06-11

火速围观!牛人招PHP技术员-出得厅堂,下得厨房,进得洞房!有木有!!有木有!!

http://bbs.phpchina.com/thread-214382-1-1.html   这公司太有才了,做PHP的还要求会武功,找金庸大师学学吧,笑死俺了哈

作者: 辣椒封   发布时间: 2011-06-11