首页  >  文章  >  数据库  >  如何使用 PHP 计算网站的唯一访问者数量?

如何使用 PHP 计算网站的唯一访问者数量?

Patricia Arquette
Patricia Arquette原创
2024-11-08 09:50:02541浏览

How to Count Unique Visitors to Your Site Using PHP?

如何计算我网站的唯一访问者?

问题:

我需要一个精确的访问者计数器,仅记录不同的访问者,无论他们是每天还是每周访问,用于对主页上浏览次数最多的帖子进行排名的用户帖子系统。使用 Google Analytics 不是一个选项。

解决方案:

此 PHP 代码实现了所需的功能:

<?php
session_start();        // start Session, if not already started

$visitors = array();    // store visitors IP addresses in a PHP array

$ip = $_SERVER['REMOTE_ADDR']; // get visitor's IP address

$dt = time();             // get current timestamp

$expiration = 86400;        // expire session in 24 hours

if(isset($_GET['view'])) { // check if 'view' is a query parameter
    if(!isset($_SESSION['last_visit']) || ($_SESSION['last_visit'] < ($dt - $expiration))) {
        // visitor hasn't visited in the last 24 hours (or ever)
        $_SESSION['last_visit'] = $dt;  // update last visit timestamp
        $visitors[] = $ip;            // add IP to the visitors array
        $view_count = $view_count + 1; // increment view count
    }
}

// output data
echo 'Total Unique Visitors: ', count($visitors);
echo '<br>';
echo 'Total Page Views: ', $view_count;
?>

工作原理:

  1. 初始化一个 PHP 数组 $visitors 来存储唯一的 IP地址。
  2. 使用 $_SERVER['REMOTE_ADDR'] 获取访问者的 IP 地址。
  3. 获取当前时间戳 ($dt)。
  4. 设置会话变量 $_SESSION[ 'last_visit'] 跟踪访问者上次查看页面的时间,过期时间为 24小时。
  5. 检查“view”是否是查询参数。如果是,则表示该页面正在被查看。
  6. 如果访问者在过去 24 小时内(或曾经)没有访问过,则更新 $_SESSION['last_visit'] 时间戳,将 IP 添加到$visitors,并增加浏览量。
  7. 输出唯一访问者总数($visitors 数)和总页面浏览量($view_count).

记住:要使此代码正常工作,您需要将其包含在要跟踪视图的每个页面上,并且需要添加以下内容页面的 HTML 代码:

<a href="?view=1">View Post</a>

以上是如何使用 PHP 计算网站的唯一访问者数量?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn