AI摘要

本文介绍了如何在Typecho博客中使用PHP代码添加实时在线人数显示功能。首先,在`functions.php`文件中添加在线人数统计代码,包括数据文件、Cookie名称、在线有效时间等参数设置。然后,在需要显示在线人数的位置添加代码,如`footer.php`页脚文件或Handsome主题的`sidebar.php`文件。通过这种方式,可以方便地在博客中实时显示在线人数。

说明

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

效果

2025-05-03T09:25:02.png

代码

在Typecho的functions.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>
END
本文作者:
文章标题:Typecho使用PHP代码添加显示实时在线人数
本文地址:https://oini.de/archives/56.html
版权说明:若无注明,本文皆LJZの博客原创,转载请保留文章出处。
最后修改:2025 年 05 月 03 日
如果觉得我的文章对你有用,请随意赞赏