UltraDebug

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: A C D R G Y M Z X S P
公益项目,接受捐赠
查看: 1901|回复: 0
收起左侧

[PHP] @Tencent开源一个软件在线人数统计源代码

[复制链接]
Tencent

主题

0

回帖

UD

新手上路

UID
12
积分
34
注册时间
2022-1-7
最后登录
1970-1-1
2022-3-27 22:41:47 | 显示全部楼层 |阅读模式
非常简单的使用方法,只需要GET访问就可以了。

代码附上
[PHP] 纯文本查看 复制代码
<?php

$filename = 'online.txt';  //xx文件;返回在线数字
$cookiename = 'VGOTCN_OnLineCount';  //cookie名称
$onlinetime = 60;  //在线有效时间,单位:秒 (即60等于1分钟)

$online = file($filename); 
$nowtime = time(); 
$nowonline = array();

/*
        [url=home.php?mod=space&uid=398972]@[/url] 得到仍然有效的xx
*/
foreach($online as $line) {
        $row = explode('|',$line);
        $sesstime = trim($row[1]);
        if(($nowtime - $sesstime) <= $onlinetime) {  //如果仍在有效时间内,则xx继续保存,否则被放弃不再统计
                $nowonline[$row[0]] = $sesstime;  //获取在线列表到数组,会话ID为键名,最后通信时间为键值
        }
}

/*
        @ 创建访问者通信状态
                使用cookie通信
                COOKIE 将在关闭浏览器时失效,但如果不关闭浏览器,此 COOKIE 将一直有效,直到程序设置的在线时间超时
*/
if(isset($_COOKIE[$cookiename])) {  //如果有COOKIE即并非初次访问则不添加人数并更新通信时间
        $uid = $_COOKIE[$cookiename];
} else {  //如果没有COOKIE即是初次访问
        $vid = 0;  //初始化访问者ID
        do {  //给用户一个新ID
                $vid++;
                $uid = 'U'.$vid;
        } while (array_key_exists($uid,$nowonline));
        setcookie($cookiename,$uid);
}
$nowonline[$uid] = $nowtime;  //更新现在的时间状态

/*
        @ 统计现在在线人数
*/
$total_online = count($nowonline);

/*
        @ 写入xx
*/
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.''; 
?>
SyntaxHighlighter Copyright 2004-2013 Alex Gorbatchev.
UltraDebug免责声明
✅以上内容均来自网友转发或原创,如存在侵权请发送到站方邮件9003554@qq.com处理。
✅The above content is forwarded or original by netizens. If there is infringement, please send the email to the destination 9003554@qq.com handle.
回复 打印

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|站点地图|UltraDebug ( 滇ICP备2022002049号-2 滇公网安备 53032102000034号)

GMT+8, 2025-6-18 20:45 , Processed in 0.033840 second(s), 10 queries , Redis On.

Powered by Discuz X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表