Typecho在线人数统计

401次阅读
一条评论

共计 875 个字符,预计需要花费 3 分钟才能阅读完成。

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

在主题文件 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() ?> 
正文完
 
alecctv
版权声明:本站原创文章,由 alecctv 2019-05-07发表,共计875字。
转载说明:除特殊说明外本站文章皆由ooly.cc发布,转载请注明出处。
评论(一条评论)
验证码
alecctv 博主
2019-05-07 23:57:41 回复

看一看