PHP统计当前在线人数

PHP统计当前在线人数

一、开发环境

1、Windows+Apache+MySQL+PHP的环境。

2、文本编辑器:Sublime。

二、主要技术

PHP

三、具体步骤

本文主要是通过IP来区分不同的访问用户,然后将用户信息保存在txt文本中来实现统计当前在线人数的功能。

3.1、创建php文件

创建一个名为“countOnline.php”的PHP文件用来实现统计当前在线人数的功能。

3.2、统计在线人数功能代码

(1)定义保存用户信息的文本

$user_online="count.txt";  //保存在线用户信息的文件

touch($user_online);  // 若无此文件则创建

(2)定义超时时间

$timeout=30;   // 30秒内没动作,认为掉线

(3)文件内容读取

$user_arr=file_get_contents($user_online);// 将文件内容赋予一个字符串

$user_arr=explode("#",rtrim($user_arr,'#'));//将字符串分割为数组

(4)获取远程在线用户信息

$temp=array();  // 放置所有用户信息

foreach($user_arras $value){

         $user=explode(",",trim($value));

         // 如果不是本机IP,并且时间没有超过,则放入数组temp

         // getenv('REMOTE_ADDR')是获取远程IP地址(在IIS下无效果),$_SERVER['REMOTE_ADDR']也可以获取IP地址。

                  if(($user[0]!=getenv('REMOTE_ADDR'))&&($user[1]>time())){

                                    array_push($temp,$user[0].",",$user[1]);

                  }

         }

(5)保存本用户的信息

array_push($temp,getenv('REMOTE_ADDR').",".(time()+($timeout)).'#');

$user_arr=implode("#",$temp);

(6)以更新的形式打开文件

$fp=fopen($user_online,"w");

(7)对文件进行写入

flock($fp,LOCK_EX);// 锁定文件(保证同时只有一个用户在对文件进行写入操作)

fputs($fp,$user_arr);  // 写入文件

flock($fp,LOCK_UN);  // 释放锁定

fclose($fp);    // 关闭文件

(8)输出当前在线人数至页面

echo"当前有".count($temp)."人在线"; // 输出当前在线人数

四、网页测试

开启Apache服务器后,打开浏览器,在浏览器地址栏中输入文件地址,例如:

“localhost:8080/countOnline.php”可以看到如图1所示的当前在线人数。


图1 项目结果图

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值