PHP 网站访问统计:无需数据库,简单实现每日 IP 和 PV 统计

本文将详细介绍如何使用 PHP 和 HTML 实现一个简单的网站访问统计功能,无需数据库,将统计数据存储在本地文件。代码示例演示了如何记录每日的访问 IP 和 PV 量,并以清晰易懂的方式在 HTML 页面上展示数据。

代码实现

以下是用 PHP 和 HTML 编写的简单网站访问统计功能的代码:

index.php

<?php
$filename = 'stats.txt';

// 获取今日和昨日的日期
$today = date('Y-m-d');
$yesterday = date('Y-m-d', strtotime('-1 day'));

// 初始化今日和昨日的 IP 和 PV 量
$todayIP = 0;
$todayPV = 0;
$yesterdayIP = 0;
$yesterdayPV = 0;

// 检查文件是否存在
if (file_exists($filename)) {
    // 读取文件内容
    $data = file_get_contents($filename);

    // 解析文件内容为数组
    $stats = unserialize($data);

    // 检查今日数据是否存在
    if (isset($stats[$today])) {
        $todayIP = $stats[$today]['ip'];
        $todayPV = $stats[$today]['pv'];
    }

    // 检查昨日数据是否存在
    if (isset($stats[$yesterday])) {
        $yesterdayIP = $stats[$yesterday]['ip'];
        $yesterdayPV = $stats[$yesterday]['pv'];
    }
}

// 增加今日 PV 量
$todayPV++;

// 获取访问者的 IP 地址
$ip = $_SERVER['REMOTE_ADDR'];

// 检查今日 IP 是否已经存在
if (isset($stats[$today]['ips'][$ip])) {
    // 如果 IP 已存在,则不增加 IP 量
    $todayIP = $stats[$today]['ip'];
} else {
    // 如果 IP 不存在,则增加 IP 量
    $todayIP++;
    $stats[$today]['ips'][$ip] = true;
}

// 更新今日的数据
$stats[$today] = [
    'ip' => $todayIP,
    'pv' => $todayPV,
    'ips' => $stats[$today]['ips'] ?? []
];

// 将数据序列化为字符串
$data = serialize($stats);

// 将数据写入文件
file_put_contents($filename, $data);
?>

<!DOCTYPE html>
<html>
<head>
    <title>网站访问统计</title>
</head>
<body>
    <h1>网站访问统计</h1>
    <h2>今日数据</h2>
    <p>IP: <?php echo $todayIP; ?></p>
    <p>PV: <?php echo $todayPV; ?></p>
    <h2>昨日数据</h2>
    <p>IP: <?php echo $yesterdayIP; ?></p>
    <p>PV: <?php echo $yesterdayPV; ?></p>
</body>
</html>

代码解析

  1. 获取日期:代码首先获取今日和昨日的日期,用于统计数据的分组。
  2. 初始化统计数据:初始化今日和昨日的 IP 和 PV 量为 0,以便后续统计。
  3. 读取统计数据:代码检查名为 stats.txt 的文件是否存在,如果存在则读取文件内容并将其解析为数组。
  4. 获取今日和昨日的 IP 和 PV:代码检查今日和昨日的数据是否存在,如果存在则获取相应的 IP 和 PV 量。
  5. 增加今日 PV:每次访问页面时,今日的 PV 量都会增加 1。
  6. 获取访问者 IP:代码获取访问者的 IP 地址,用于统计独立访问次数。
  7. 检查今日 IP 是否存在:代码检查今日的 IP 是否已存在,如果存在则不增加 IP 量,否则增加 IP 量。
  8. 更新统计数据:代码更新今日的 IP 和 PV 量,并将其序列化为字符串,最后将数据写入 stats.txt 文件。
  9. 显示统计数据:在 HTML 部分,代码显示了今日和昨日的 IP 和 PV 量。

总结

这段代码简单易懂,可以帮助您快速实现网站访问统计功能,无需使用数据库,只需将数据存储在本地文件即可。您可以根据自己的需要修改代码,例如增加更多统计数据,或者将数据存储到数据库中。

PHP 网站访问统计:无需数据库,简单实现每日 IP 和 PV 统计

原文地址: http://www.cveoy.top/t/topic/6rp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录