TypechoJoeTheme

尘遇 logo

当我遇上你
排行榜
统计

PHP给网站添加在线人数统计

醉书生站长
8个月前
0 评论
263 阅读
检测收录...
01/25
本文最后更新于2021年05月24日,已超过145天没有更新,若内容或图片失效,请留言反馈。

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

通用型

<?php
    //首先你要有读写文件的权限,首次访问不显示,正常情况刷新即可
    $online_log = "slzxrs.dat"; //保存人数的文件到根目录,
    $timeout = 30;//30秒内没动作者,认为掉线
    $entries = file($online_log);
    $temp = array();
    for ($i=0;$i<count($entries);$i++){
        $entry = explode(",",trim($entries[$i]));
        if(($entry[0] != getenv('REMOTE_ADDR')) && ($entry[1] > time())) {
            array_push($temp,$entry[0].",".$entry[1]."\n"); //取出其他浏览者的信息,并去掉超时者,保存进$temp
        }
    }
    array_push($temp,getenv('REMOTE_ADDR').",".(time() + ($timeout))."\n"); //更新浏览者的时间
    $slzxrs = count($temp); //计算在线人数
    $entries = implode("",$temp);
    //写入文件
    $fp = fopen($online_log,"w");
    flock($fp,LOCK_EX); //flock() 不能在NFS以及其他的一些网络文件系统中正常工作
    fputs($fp,$entries);
    flock($fp,LOCK_UN);
    fclose($fp);
    $tj= "在线人数:".$slzxrs."人";
?>

将以上代码放到要显示文件的最顶部,之后再要显示此统计的地方加上此输出:

安装

<?php echo $tj?>

Joe主题设置

Joe主题专用,后台可以自由选择开启和关闭。

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
①第一段,顶部新增

<?php
    //首先你要有读写文件的权限,首次访问不显示,正常情况刷新即可
    $online_log = "slzxrs.dat"; //保存人数的文件到根目录,
    $timeout = 30;//30秒内没动作者,认为掉线
    $entries = file($online_log);
    $temp = array();
    for ($i=0;$i<count($entries);$i++){
        $entry = explode(",",trim($entries[$i]));
        if(($entry[0] != getenv('REMOTE_ADDR')) && ($entry[1] > time())) {
            array_push($temp,$entry[0].",".$entry[1]."\n"); //取出其他浏览者的信息,并去掉超时者,保存进$temp
        }
    }
    array_push($temp,getenv('REMOTE_ADDR').",".(time() + ($timeout))."\n"); //更新浏览者的时间
    $slzxrs = count($temp); //计算在线人数
    $entries = implode("",$temp);
    //写入文件
    $fp = fopen($online_log,"w");
    flock($fp,LOCK_EX); //flock() 不能在NFS以及其他的一些网络文件系统中正常工作
    fputs($fp,$entries);
    flock($fp,LOCK_UN);
    fclose($fp);
    $tj= "在线人数:".$slzxrs."人";
?>

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

<div class="item" style="margin: 10px; <?php if(Helper::options()->ZNPaySet !== 'on') echo 'display:none;'  ?>">
    <?php echo $tj ?>
</div>
本文共418个字数,您已阅读:平均阅读时长≈2分钟。
php
朗读
点赞
1
赞赏
海报
人生
欢迎
要时间嘉许,等春风得意,我正好遇上你!

微信/QQ/支付宝三合一收款码

微信
QQ
支付宝
打开微信/QQ/支付宝扫一扫,即可进行扫码打赏!
版权属于:

尘遇

最后修改:

2021 年 05 月 24 日 08 : 42 AM

本文链接:

https://chenyu.me/1156.html(转载时请注明本文出处及文章链接)

暂无评论

光阴者,百代之过客

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. chz举人
    2021-10-16

  2. ZMR秀才
    2021-10-16
  3. 鑫旺秀才
    2021-10-15
  4. ZMR秀才
    2021-10-15
  5. WF.秀才
    2021-10-14