php实现人数统计
PHP 实现人数统计的方法
使用文件存储统计
创建一个文本文件(如 counter.txt)存储访问次数,每次访问时读取并增加计数。
$counterFile = 'counter.txt';
$count = file_exists($counterFile) ? (int)file_get_contents($counterFile) : 0;
$count++;
file_put_contents($counterFile, $count);
echo "总访问人数: " . $count;
使用数据库存储统计
通过 MySQL 数据库记录访问人数,适合高并发场景。

$conn = new mysqli("localhost", "username", "password", "database");
$conn->query("UPDATE counter SET count = count + 1 WHERE id = 1");
$result = $conn->query("SELECT count FROM counter WHERE id = 1");
$row = $result->fetch_assoc();
echo "总访问人数: " . $row['count'];
$conn->close();
使用 Session 或 Cookie 防止重复统计
避免同一用户多次刷新导致计数异常。

session_start();
if (!isset($_SESSION['visited'])) {
$_SESSION['visited'] = true;
$count = file_get_contents('counter.txt');
file_put_contents('counter.txt', ++$count);
}
echo "总访问人数: " . file_get_contents('counter.txt');
使用 Redis 高性能计数
利用 Redis 的原子操作特性,适合大规模统计。
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->incr('visitor_count');
echo "总访问人数: " . $redis->get('visitor_count');
统计在线人数
通过记录用户最后活动时间,统计当前在线人数。
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$userId = session_id();
$redis->setex("user:$userId", 300, time()); // 5分钟超时
$onlineUsers = $redis->keys("user:*");
echo "当前在线人数: " . count($onlineUsers);
根据需求选择合适的方法,文件存储适合小型网站,数据库和 Redis 适合高性能场景。注意并发问题和数据持久化。






