php实现访客统计
PHP 实现访客统计的方法
使用文件存储统计数据
创建一个文本文件存储访问次数,每次访问时读取并更新该文件。
$counterFile = 'counter.txt';
if (!file_exists($counterFile)) {
file_put_contents($counterFile, '0');
}
$count = (int)file_get_contents($counterFile);
$count++;
file_put_contents($counterFile, $count);
echo "访问次数: " . $count;
使用数据库存储详细数据
MySQL数据库可以存储更详细的访问信息,如IP、访问时间等。
$conn = new mysqli('localhost', 'username', 'password', 'database');
$ip = $_SERVER['REMOTE_ADDR'];
$date = date('Y-m-d H:i:s');
$stmt = $conn->prepare("INSERT INTO visits (ip, visit_time) VALUES (?, ?)");
$stmt->bind_param("ss", $ip, $date);
$stmt->execute();
$stmt->close();
$conn->close();
使用Session防止重复计数
通过Session判断是否为新访客,避免刷新页面重复计数。
session_start();
if (!isset($_SESSION['visited'])) {
$_SESSION['visited'] = true;
$count = (int)file_get_contents('counter.txt');
$count++;
file_put_contents('counter.txt', $count);
}
echo "访问次数: " . file_get_contents('counter.txt');
统计唯一访客
通过IP地址识别唯一访客,需先创建存储IP的文件或数据库表。
$visitorIP = $_SERVER['REMOTE_ADDR'];
$ipFile = 'visitors.txt';
$ips = file_exists($ipFile) ? file($ipFile) : [];
if (!in_array($visitorIP, $ips)) {
file_put_contents($ipFile, $visitorIP.PHP_EOL, FILE_APPEND);
$count = count(file($ipFile));
echo "唯一访客数: " . $count;
}
使用Redis高效统计
Redis适合高并发场景,提供更高效的计数解决方案。
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->incr('visitor_count');
echo "访问次数: " . $redis->get('visitor_count');
以上方法可根据实际需求选择或组合使用,文件存储适合简单场景,数据库适合需要持久化和分析的场景,Redis适合高性能要求。







