本站承诺永不接任何虚假欺骗、联盟广告、弹窗广告、病毒广告、诱导充值等影响用户体验的广告,广告屏蔽插件会影响本站部分功能,还请不要屏蔽本站广告,感谢支持!

当前位置:首页 / 正文

548

【PHP】简单的实时在线人数统计

编程技术 | WangTwoThree | 2021-02-20 | 等你评论 | 0 次点赞

PHP 实现的简单在线人数统计功能

代码

//在线人数
function online_users() {
    $filename='online.txt'; 
    $CookieName='OnLinePerson'; 
    $onlineTime=30; 
    $online=file($filename); 
    $nowtime=$_SERVER['REQUEST_TIME']; 
    $nowonline=array(); 
    foreach($online as $line){ 
        $row=explode('|',$line); 
        $sesstime=trim($row[1]); 
        if(($nowtime - $sesstime)<=$onlineTime){
            $nowonline[$row[0]]=$sesstime;
        } 
    } 
    if(isset($_COOKIE[$CookieName])){
        $uid=$_COOKIE[$CookieName]; 
    }else{
        $vid=0;
        do{
            $vid++; 
            $uid='U'.$vid; 
        }while(array_key_exists($uid,$nowonline)); 
        setcookie($CookieName,$uid); 
    } 
    $nowonline[$uid]=$nowtime;
    $total_online=count($nowonline); 
    if([email protected]($filename,'w')){ 
        if(flock($fp,LOCK_EX)){ 
            rewind($fp); 
            foreach($nowonline as $fuid=>$ftime){ 
                $fline=$fuid.'|'.$ftime."\n"; 
                @fputs($fp,$fline); 
            } 
            flock($fp,LOCK_UN); 
            fclose($fp); 
        } 
    } 
    echo "$total_online"; 
} 

这里解释下一些变量吧:

$filename 数据文件的名字
$CookieName Cookie 名称,这里使用 Cookie 进行记录,当然你也可以用本地储存
$onlineTime 在线有效时间,以秒为单位,超过这个时间没有动作将会记为掉线

我使用的是 Typecho 主题,所以我将会把上面的代码放入 functions.php 内

当然你是其他程序的也可以用的,具体怎么放就要看实际情况了

调用

<?php echo online_users() ?>

猜你喜欢

暂无评论

有话要说

本页二维码

扫码手机打开

浏览TOP5
热门标签
点赞TOP5
最新评论
别人在看