专栏首页膨胀的面包【PHP】简单的实时在线人数统计

【PHP】简单的实时在线人数统计

PHP 实现的简单在线人数统计功能

代码

//在线人数
function online_users() {
    $filename='online.txt'; 
    $CookieName='OnLinePerson'; 
    $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"; 
} 

这里解释下一些变量吧:

filename 数据文件的名字CookieName Cookie 名称,这里使用 Cookie 进行记录,当然你也可以用本地储存

我使用的是 Typecho 主题,所以我将会把上面的代码放入 functions.php 内

当然你是其他程序的也可以用的,具体怎么放就要看实际情况了

调用

<?php echo online_users() ?>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SpringBoot统计实时在线人数

    MiChong
  • PHP基于cookie实现统计在线人数功能示例

    本文实例讲述了PHP基于cookie实现统计在线人数功能。分享给大家供大家参考,具体如下:

    砸漏
  • php如何实现和精确统计在线人数功能

    [c-alert type=”info”]注意:online.txt 这个文件给777权限[/c-alert]

    回忆大大
  • php+mysql开发的最简单在线题库(在线做题系统)完整案例

    本文实例讲述了php+mysql开发的最简单在线题库。分享给大家供大家参考,具体如下:

    砸漏
  • windows下WorkerMan实现简单的多人在线聊天

    Workerman是一款纯PHP开发的开源高性能的PHP socket 服务框架。

    一个淡定的打工菜鸟
  • windows下WorkerMan实现简单的多人在线聊天

    Workerman是一款纯PHP开发的开源高性能的PHP socket 服务框架。

    一个淡定的打工菜鸟
  • Emlog统计正在访问博客的在线人数代码

    Youngxj
  • 问与答92:如何使用公式统计同时在线人数?

    Q:如下图1所示,在列A中是日期,列B中是对应日期上线人名称,同一日期上线人存在重复,要求使用公式统计指定日期上线人数(剔除重复值)。要求:在单元格F2中输入公...

    fanjy
  • Asp.Net MVC3.0网站统计登录认证的在线人数

      对于一个网站来说,统计在线人数是一个很重要的工作。平时也发现很多的网站论坛等都有在线人数的显示。对于一个网站如果在线人数很多,用户看到了这么个数字也是很了不...

    aehyok
  • 想实现多人协作的“在线Excel”?真没那么简单

    Excel是我们办公中常用的工具 ,它几乎能为我们处理大部分数据,友好的交互界面、丰富的公式函数和易于上手的图表为我们在数据统计方面提供了不小的帮助,但经过一段...

    葡萄城控件
  • 20万人同时在线的游戏数据库要如何设计

    些表是不能分库的, 比如账号表, 你分电信一区,网通一区, 但是登陆的时候查的账号表都是同一张表, 你不可能让玩家在电信一区注册一个账号, 到网通一区再注册一...

    李海彬
  • EasyDSS_dash版本虚拟直播在线人数重复统计的优化

    我们对EasyDSS_dash版本优化了多次,针对不同的功能都做了较为完整的测试,同普通版本一样,EasyDSS的Dash版本也具备基础的点播功能以及虚拟直播功...

    TSINGSEE青犀视频
  • 【Redis】位图以及位图的使用场景(统计在线人数和用户在线状态)

    位图的最大优点之一是,它们在存储信息时通常可以节省大量空间 位图不是一个真实的数据类型,而是定义在字符串类型上的面向位的操作的集合。由于字符串类型是二进制安全...

    石臻臻的杂货铺[同名公众号]
  • PHP程序员的技术成长规划

    原文出处: 黑夜路人 按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这...

    wangxl
  • Elixir: 编程语言的未来

    时见疏星
  • [PHP] 算法-统计一个数字在排序数组中出现的次数的PHP实现

    陶士涵
  • H2Engine服务器引擎介绍

    H2Engine服务器引擎介绍 简介   H2Engine服务器引擎架构是轻量级的,与其说是引擎,个人觉得称之为平台更为合适。因为它封装的功能非常精简,但是提供...

    知然
  • ASP.NET MVC5+EF6+EasyUI 后台管理系统(40)-精准在线人数统计实现-【过滤器+Cache】

    上次的探讨没有任何结果,我浏览了大量的文章和个别系统的参考!决定用Cache来做,这可能有点难以接受但是配合mvc过滤器来做效果非常好! 由于之前的过滤器我们用...

    用户1149182
  • 【转】PHP发展路径

    按照了解的很多 PHP/LNMP 程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段 PHP ...

    程序小工

扫码关注云+社区

领取腾讯云代金券