开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 150|回复: 0
收起左侧

[分享] AI_kimi生成的统计软件在线人数的PHP

[复制链接]
结帖率:94% (17/18)
发表于 5 小时前 | 显示全部楼层 |阅读模式   上海市上海市
我问了整整两天,才给我写出来,不能说完全没用吧
只能说鸡扒猫用没有
距离真正的可用感觉差太远,我整理的训练和提示词都三千多字了塔玛的纯纸张
index.php

<?php
// index.php
session_start();

// 定义心跳包文件和超时时间(以分钟为单位)
$heartbeatFile = 'online_users.txt';
$timeout = 60; // 用户超时时间(60秒)

// 读取在线用户文件
if (file_exists($heartbeatFile)) {
    $content = file_get_contents($heartbeatFile);
    $lines = explode("\n", $content);
} else {
    $lines = [];
}

// 统计在线用户数
$currentTime = time();
$onlineCount = 0;
foreach ($lines as $line) {
    if ($line) {
        list($id, $time) = explode(':', $line);
        if ($currentTime - $time < $timeout) {
            $onlineCount++;
        }
    }
}

// 如果是新用户,则添加到在线用户列表中
$sessionId = session_id();
if (!in_array($sessionId . ':' . $currentTime, $lines)) {
    $lines[] = $sessionId . ':' . $currentTime;
    file_put_contents($heartbeatFile, implode("\n", $lines));
    $onlineCount++; // 增加新用户的计数
}

// 显示在线用户数
echo "在线用户数: " . $onlineCount;
?>


心跳处理 heartbeat.php

<?php
// 定义心跳包文件和超时时间(以秒为单位)
$heartbeatFile = 'online_users.txt';
$timeout = 60; // 用户超时时间(60秒)

// 读取在线用户文件
if (file_exists($heartbeatFile)) {
    $content = file_get_contents($heartbeatFile);
    $lines = explode("\n", $content);
} else {
    $lines = [];
}

// 检查是否收到了心跳请求
if (isset($_GET['heartbeat'])) {
    // 获取会话ID
    $sessionId = session_id();
    // 获取当前时间戳
    $timestamp = time();

    // 更新用户的最后活动时间
    $updated = false;
    foreach ($lines as &$line) {
        list($id, $time) = explode(':', $line);
        if ($id === $sessionId) {
            $line = $sessionId . ':' . $timestamp;
            $updated = true;
            break;
        }
    }
    unset($line);

    // 如果用户不在线,则添加新的记录
    if (!$updated) {
        $lines[] = $sessionId . ':' . $timestamp;
    }

    // 删除超时的用户
    $lines = array_filter($lines, function ($line) use ($timeout, $timestamp) {
        list($id, $time) = explode(':', $line);
        return $timestamp - $time < $timeout;
    });

    // 将更新后的内容写回文件
    file_put_contents($heartbeatFile, implode("\n", $lines));
}
?>

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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