【原创】PHP智能伪装网站实时当前访问量/今日访问量/昨日访问量输出代码

本教程为小风原创,如转载请注明出处,链接到本地址或标记本站名称:小风网络。

大家是否有伪装网站实时访问量的想法呢?我想部分小伙伴肯定有此需求。

本次就为大家带来智能伪装网站访问量输出代码,大家紧跟小风的讲解步伐,一定可以看懂原理的。

构思逻辑

  1. 确认需求:我打算将此代码设置为显示三个板块,当前访问量、今日访问量、昨日访问量
  2. 存储类型:以本地文件形式来存储
  3. 确定内容:当前访问量展示200-500的随机数(10分钟刷新一次),今日访问量按照时间段展示不同数值(按照时间段刷新数据),昨日访问量展示20000-25000的随机数(这个数据是生成后固定的)
  4. 需要定义一个数组变量来存放所有需求数据,再定义一个变量来存储文件存储路径
  5. 文件存在和不存在的执行逻辑
  6. 输出数据

教程开始

1、先定义变量

<?php
//定义数据变量
$data = [];
//数据存储文件路径,这里我这样编写就是在站点根目录输出,可自行修改
$json_file = 'custom-view-count.json';

2、判断json_file变量的路径是否存在来执行两个逻辑,完成两种情况的代码输出

<?php
//判断文件是否存在,存在执行更新文件内容,不存在则根据条件创建文件
if (file_exists($json_file)) {
    //文件存在逻辑
    $today_date_YMD = date('Y-m-d');

    //取文件内容
    $data = json_decode(file_get_contents($json_file), true);

    //检测今日是否过完,过完删除文件重新来过
    if ($data['date_YMD'] !== $today_date_YMD) {
        unlink($json_file);
        randView();
        return;
    }

    //当前在线修改 10分钟变动一次 - 将文件中存储的时间拿来和当前时间比对,是否超过10分钟,超过则更新数据
    if (($data['today']['this_views']['date'] + 600) < time()) {
        $data['today']['this_views']['date'] = time();
        $data['today']['this_views']['view'] = rand(200, 500);
        //更新文件
        file_put_contents($json_file, json_encode($data));
    }

    //今日访问人数修改 1小时变动一次 - 将文件中存储的时间拿来和当前时间比对,是否超过1小时,超过则更新数据
    if (($data['today']['today_views']['date'] + 3600) < time()) {
        $data['today']['today_views']['date'] = time();
        //此处更新数据的逻辑为:拿到上一次的数据,将此数据设置为随机数最低要求,最高要求+1000数据,比如上一次数值是6789,则随机数函数则为rand(6789, 7789); 此处代码无需修改,自动生成的
        $data['today']['today_views']['view'] = rand($data['today']['today_views']['view'], $data['today']['today_views']['view'] + 1000);
        //更新文件
        file_put_contents($json_file, json_encode($data));
    }
} else {
    //文件不存在逻辑

    $this_time = time();
    $this_hour = date('H');

    //今日时间
    $data['date_YMD'] = date('Y-m-d');

    //当前在线 - 存储当前时间
    $data['today']['this_views']['date'] = $this_time;
    $data['today']['this_views']['view'] = rand(200, 500);

    //今日访问人数
    //伪造各个时间段首次访问量 - 伪造每个时间段的数据,可自行修改
    if ($this_hour >= 0 && $this_hour < 8) {
        $today_view_rand = rand(3000, 5000);
    } elseif ($this_hour >= 8 && $this_hour < 12) {
        $today_view_rand = rand(7000, 9000);
    } elseif ($this_hour >= 12 && $this_hour < 18) {
        $today_view_rand = rand(10000, 12000);
    } else {
        $today_view_rand = rand(13000, 15000);
    }
    //存储当前时间
    $data['today']['today_views']['date'] = $this_time;
    $data['today']['today_views']['view'] = $today_view_rand;

    //昨日访问人数 - 存储当前时间
    $data['today']['yesterday_views']['date'] = $this_time;
    $data['today']['yesterday_views']['view'] = rand(20000, 25000);

    //生成文件
    file_put_contents($json_file, json_encode($data));
}

3、最后将生成的数据拿出来赋值给三个变量并输出数据,完整代码

<?php
//伪装浏览量函数
function randView() {
    //定义数据变量
    $data = [];
    //数据存储文件路径
    $json_file = 'custom-view-count.json';

    //判断文件是否存在,存在执行更新文件内容,不存在则根据条件创建文件
    if (file_exists($json_file)) {
        //文件存在逻辑
        $today_date_YMD = date('Y-m-d');

        //取文件内容
        $data = json_decode(file_get_contents($json_file), true);

        //检测今日是否过完,过完删除文件重新来过
        if ($data['date_YMD'] !== $today_date_YMD) {
            unlink($json_file);
            randView();
            return;
        }

        //当前在线修改 10分钟变动一次 - 将文件中存储的时间拿来和当前时间比对,是否超过10分钟,超过则更新数据
        if (($data['today']['this_views']['date'] + 600) < time()) {
            $data['today']['this_views']['date'] = time();
            $data['today']['this_views']['view'] = rand(200, 500);
            //更新文件
            file_put_contents($json_file, json_encode($data));
        }

        //今日访问人数修改 1小时变动一次 - 将文件中存储的时间拿来和当前时间比对,是否超过1小时,超过则更新数据
        if (($data['today']['today_views']['date'] + 3600) < time()) {
            $data['today']['today_views']['date'] = time();
            //此处更新数据的逻辑为:拿到上一次的数据,将此数据设置为随机数最低要求,最高要求+1000数据,比如上一次数值是6789,则随机数函数则为rand(6789, 7789); 此处代码无需修改,自动生成的
            $data['today']['today_views']['view'] = rand($data['today']['today_views']['view'], $data['today']['today_views']['view'] + 1000);
            //更新文件
            file_put_contents($json_file, json_encode($data));
        }
    } else {
        //文件不存在逻辑

        $this_time = time();
        $this_hour = date('H');

        //今日时间
        $data['date_YMD'] = date('Y-m-d');

        //当前在线 - 存储当前时间
        $data['today']['this_views']['date'] = $this_time;
        $data['today']['this_views']['view'] = rand(200, 500);

        //今日访问人数
        //伪造各个时间段首次访问量 - 伪造每个时间段的数据,可自行修改
        if ($this_hour >= 0 && $this_hour < 8) {
            $today_view_rand = rand(3000, 5000);
        } elseif ($this_hour >= 8 && $this_hour < 12) {
            $today_view_rand = rand(7000, 9000);
        } elseif ($this_hour >= 12 && $this_hour < 18) {
            $today_view_rand = rand(10000, 12000);
        } else {
            $today_view_rand = rand(13000, 15000);
        }
        //存储当前时间
        $data['today']['today_views']['date'] = $this_time;
        $data['today']['today_views']['view'] = $today_view_rand;

        //昨日访问人数 - 存储当前时间
        $data['today']['yesterday_views']['date'] = $this_time;
        $data['today']['yesterday_views']['view'] = rand(20000, 25000);

        //生成文件
        file_put_contents($json_file, json_encode($data));
    }

    //数据赋值
    $this_views         = $data['today']['this_views']['view'];
    $today_views        = $data['today']['today_views']['view'];
    $yesterday_views    = $data['today']['yesterday_views']['view'];

    echo "最新活跃访客:{$this_views} | 今日访问人数:{$today_views} | 昨日访问人数:{$yesterday_views}";
}

4、调用此函数的方法为,如下:

<?php randView(); ?>

到此,本次教程就讲解完成了,大家可学习其中的代码逻辑,其中的数据很多是可以修改的,大家可以自行测试,小风就不做太多讲述了。

此代码可运用在很多php程序中,比如:wordpress、emlog、zblog、各类CMS程序等等,只要是php构建的程序都可以执行。

注意

请确保你的php服务没有禁用file_get_contents、file_put_contents等函数,否则将无法正常存储数据。

© 版权声明
THE END
喜欢就支持一下吧
点赞7赞赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容