您当前的位置:首页 > 计算机 > 服务器 > 万维网站 > 其它源码

Typecho使用PHP代码添加显示实时在线人数

时间:08-12来源:作者:点击数:
城东书院 www.cdsy.xyz

说明

  • 在线人数统计时间可以自行调整,默认的是30秒刷新一次;
  • 统计日志文件位置可以自行指定,默认在网站根目录创建;
  • 代码对于Typecho程序应该是通用的,也适用于目前使用的Handsome主题;

效果

代码

Typechofunctions.php文件中添加以下代码;

Handsome主题的functions.php文件位置在/usr/themes/handsome/functions.php

//在线人数
    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"; 
    } 

示例:

然后在需要显示输出的地方添加以下代码,比如footer.php页脚文件;

Handsome主题添加到/usr/themes/handsome/component/sidebar.php文件;

# 通用代码
<?php echo online_users() ?>

# Handsome主题
 <li class="list-group-item"> <i class="glyphicon glyphicon-user text-muted text-muted"></i> <span class="badge
pull-right"><?php echo online_users() ?></span><?php _me("在线人数") ?></li>

示例:

城东书院 www.cdsy.xyz
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门