php统计当前在线人数

<?php
$online_log = 'online.txt';  // 保存用户ip和时间的文件,形式:ip,time = 192.168.xx.xx,1516242630
$timeout = 1800;   // 设置多长时间(30分)用户不在,设为掉线
$temp = array();   // 保存当前在线所有用户,后用来更新文件

if (!file_exists($online_log)) {    // 文件不存在,就创建
    touch($online_log);
}
$onlines = file($online_log);   // 以数组的形式将用户ip和time取出来array([0]=>'192.168.xx.xx,1516242630', [1]=>...)

for ($i=0; $i<count($onlines); $i++) {
    $online = explode(',', trim($onlines[$i]));   // 将用户ip和时间分隔开
    // 过滤文件中其他的浏览者:前面!=是其他的浏览者,和当前的ip(自己)不一样,过滤掉超时的其他ip
    if ($online[0] != $_SERVER['REMOTE_ADDR'] && $online[1] > time()) {
        array_push($temp, $online[0] . ',' . $online[1]);
    }
}
// 更新当前的ip(自己)时间
array_push($temp, $_SERVER['REMOTE_ADDR'] . ',' . (time() + $timeout));

// 更新在线人数的文件
$onlines = implode("\n", $temp);
$fp = fopen($online_log, 'w');
fputs($fp, $onlines);
fclose($fp);

echo "当前在线人数" . count($temp);

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值