php pv实现
PHP 实现页面访问量(PV)统计
使用数据库记录访问量
创建一个数据库表来存储访问量数据,例如:
CREATE TABLE page_views (
id INT AUTO_INCREMENT PRIMARY KEY,
page_url VARCHAR(255) NOT NULL,
views INT DEFAULT 0,
last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
在PHP脚本中更新访问量:
<?php
$pdo = new PDO('mysql:host=localhost;dbname=your_db', 'username', 'password');
$pageUrl = $_SERVER['REQUEST_URI'];
$stmt = $pdo->prepare("INSERT INTO page_views (page_url, views) VALUES (?, 1)
ON DUPLICATE KEY UPDATE views = views + 1");
$stmt->execute([$pageUrl]);
$stmt = $pdo->prepare("SELECT views FROM page_views WHERE page_url = ?");
$stmt->execute([$pageUrl]);
$views = $stmt->fetchColumn();
echo "本页访问量: " . $views;
?>
使用文件存储访问量
创建一个简单的文本文件来记录访问量:
<?php
$file = 'counter.txt';
$page = $_SERVER['REQUEST_URI'];
$counters = [];
if (file_exists($file)) {
$counters = json_decode(file_get_contents($file), true);
}
if (!isset($counters[$page])) {
$counters[$page] = 0;
}
$counters[$page]++;
file_put_contents($file, json_encode($counters));
echo "本页访问量: " . $counters[$page];
?>
使用Redis实现高性能计数
安装Redis扩展后,可以使用以下代码:
<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$page = $_SERVER['REQUEST_URI'];
$views = $redis->incr("page:views:$page");
echo "本页访问量: " . $views;
?>
考虑用户唯一性
如果需要统计独立访客(UV)而非单纯PV,可以结合Cookie或IP:
<?php
$key = 'user_visited_'.md5($_SERVER['REQUEST_URI']);
if (!isset($_COOKIE[$key])) {
// 更新数据库或文件中的计数器
setcookie($key, '1', time()+86400); // 24小时有效
}
?>
使用分析工具
对于更专业的统计需求,可以考虑集成Google Analytics或Matomo等工具:

// Google Analytics跟踪代码
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'GA_MEASUREMENT_ID');
</script>
每种方法都有其适用场景:数据库方案适合中小型网站;文件方案适合简单需求;Redis适合高并发场景;专业工具则提供最全面的数据分析。选择时应考虑网站的规模、性能需求和数据分析深度。






