php实现站点统计
PHP实现站点统计的方法
使用数据库记录访问数据
创建一个MySQL表存储访问数据,包含字段如IP地址、访问时间、用户代理等。每次访问时插入新记录。
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database');
// 获取访问者信息
$ip = $_SERVER['REMOTE_ADDR'];
$time = date('Y-m-d H:i:s');
$agent = $_SERVER['HTTP_USER_AGENT'];
$page = $_SERVER['REQUEST_URI'];
// 插入记录
$sql = "INSERT INTO site_stats (ip, visit_time, user_agent, page)
VALUES ('$ip', '$time', '$agent', '$page')";
$conn->query($sql);
使用文本文件记录
对于小型网站,可以使用文本文件记录访问数据。

$logFile = 'stats.log';
$data = date('Y-m-d H:i:s') . "|" . $_SERVER['REMOTE_ADDR'] . "|" . $_SERVER['REQUEST_URI'] . "\n";
file_put_contents($logFile, $data, FILE_APPEND);
统计页面浏览量
在页面中添加简单的计数器,可以基于数据库或文件。
// 文件计数器
$countFile = 'counter.txt';
$count = file_exists($countFile) ? file_get_contents($countFile) : 0;
$count++;
file_put_contents($countFile, $count);
echo "总访问量: " . $count;
统计独立访客
通过记录IP地址来统计独立访客数量。

$visitorFile = 'visitors.txt';
$ip = $_SERVER['REMOTE_ADDR'];
$visitors = file_exists($visitorFile) ? file($visitorFile, FILE_IGNORE_NEW_LINES) : [];
if(!in_array($ip, $visitors)) {
$visitors[] = $ip;
file_put_contents($visitorFile, $ip.PHP_EOL, FILE_APPEND);
}
echo "独立访客: " . count($visitors);
生成统计报表
从数据库或日志文件生成统计报表。
// 从数据库获取统计数据
$sql = "SELECT COUNT(*) as total_visits,
COUNT(DISTINCT ip) as unique_visits,
MAX(visit_time) as last_visit
FROM site_stats";
$result = $conn->query($sql);
$stats = $result->fetch_assoc();
echo "总访问: " . $stats['total_visits'] . "<br>";
echo "独立访客: " . $stats['unique_visits'] . "<br>";
echo "最后访问: " . $stats['last_visit'] . "<br>";
使用现成的统计工具
集成Google Analytics或其他第三方统计服务。
// 在页面头部添加Google Analytics代码
echo '<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>';
echo '<script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag(\'js\', new Date());gtag(\'config\', \'GA_MEASUREMENT_ID\');</script>';
注意事项
确保统计系统不会显著影响网站性能,对于高流量站点考虑使用缓存或队列系统。定期清理旧数据以保持数据库高效运行。保护统计数据的隐私和安全,避免存储敏感信息。






