OOLY BLOG

柳絮纷飞
hey!

Typecho在线人数统计

在网站统计中显示在线人数

在主题文件functions.php中添加自定义函数online_users()

//在线人数
function online_users() {
    $filename='online.txt'; //数据文件
    $cookiename='Nanlon_OnLineCount'; //Cookie名称
    $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($fp=@fopen($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";
}

在需要显示的地方调用函数online_users()

<?php echo online_users() ?> 
转载文章请注明出处 | 当前页面:OOLY BLOG » Typecho在线人数统计

评论 1

captcha
请输入验证码

  1. 看一看

    alecctv 2019-05-07    回复