简单的PHP 在线人数统计
封面图
•
2025-09-23
•
PHP
154
0
0
0
下面是一个**简单的 PHP 在线人数统计**的实现方法。这个例子使用 **文件存储** 来记录在线人数,适合小型网站或学习用途。 --- ## ✅ 功能说明: - 记录当前访问网站的用户数(在线人数) - 每次访问时更新一个文件 - 设置一个过期时间(比如 5 分钟),超过时间则认为用户已离开 --- ## 📁 文件结构(示例): ``` online_counter/ ├── index.php └── online.txt ``` --- ## 💻 `index.php` 示例代码: ```php <?php // 设置过期时间(秒) $timeout = 300; // 5分钟 // 存储在线人数的文件 $file = 'online.txt'; // 获取当前时间戳 $now = time(); // 读取文件内容 $lines = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); // 过滤掉超时的用户 $active_users = array(); foreach ($lines as $line) { $parts = explode('|', $line); if (count($parts) == 2) { $user_time = (int)$parts[1]; if ($now - $user_time < $timeout) { $active_users[] = $line; } } } // 添加当前用户的访问时间 $active_users[] = "user|" . $now; // 写入文件 file_put_contents($file, implode("\n", $active_users) . "\n"); // 显示在线人数 echo "当前在线人数: " . count($active_users); ?> ``` --- ## 📄 `online.txt` 示例内容(自动维护): ``` user|1718946123 user|1718946125 user|1718946127 ``` --- ## ⚠️ 注意事项: - 如果多人同时访问,可能会有并发问题(可考虑使用 `flock()` 加锁) - 该方法不适用于高并发网站,建议使用数据库或 Redis 等更高级的存储方式 - 可以通过 IP 地址区分不同用户,而不是简单计数 --- ## 🧠 扩展建议: 如果你想根据 IP 来统计唯一用户,可以修改代码如下: ```php $user_ip = $_SERVER['REMOTE_ADDR']; $active_users = array(); foreach ($lines as $line) { $parts = explode('|', $line); if (count($parts) == 2 && $parts[0] === $user_ip) { $active_users[] = $line; } } ``` --- 如果你需要更高级的功能(如实时统计、持久化存储等),欢迎继续提问!
上一篇:
PHP开发技巧
下一篇:
php ubb函数
标题录入,一次不能超过6条
返回顶部
留言
留言
评论