typecho实时在线人数统计代码

给网站或博各添加在线人数统计,看看有多少小伙伴们正在关注你!

其他主题

首先在主题文件里的functions.php里面最下面放入以下代码:
Joe主题的位置为:/usr/themes/Joe/functions.php,在此文件内找其他function 开头的,然后放在其下面,实在不知道怎么放的,直接放在最底下?>前。

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

<?php echo online_users() ?>

或者:

<p><?php echo online_users() ?> 位小伙伴正在浏览</p>

Joe主题设置

Joe主题专用,后台可以自由选择开启和关闭,最上面“其他主题”functions.php里加的在线人数代码还是要加的。

1、修改function.php

在function.php文件的底部新增,文件路径:usr/themes/Joe;如果无法显示设置,则将以下joe_custom修改为joe_other

// 在线人数设置
$onlinePersion = new Typecho_Widget_Helper_Form_Element_Select(
    'onlinePersion',
    array(
        'on' => '开启(默认)',
        'off' => '关闭',
    ),
    'on',
    '是否启用在线人数统计',
    '介绍:开启后,文章底部展示当前在线人数'
);
$onlinePersion->setAttribute('class', 'joe_content joe_custom');
$form->addInput($onlinePersion->multiMode());

2、修改footer.php

在footer.php文件中间新增,文件路径:/usr/themes/Joe/public

②第二段,中间新增,比如“已经运行多少天”前添加

<div class="item" style="margin: 10px; <?php if(Helper::options()->ZNPaySet !== 'on') echo 'display:none;'  ?>">
    <?php echo online_users() ?> 位小伙伴正在浏览
</div>
© 版权声明
THE END
如果喜欢,可以【点赞】【分享】【收藏】
点赞16赞赏 分享
评论 抢沙发
头像
非注册用户需审核通过后才能查看。友好交流,勿发纯表情,勿恶意灌水!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容