首页/ 填坑/ 文章详情

统计博客今天访客数,向远方的朋友发出亲切的问候

PHP 统计访客 cookie 文本存储 发布于 2020-11-15

无源之水,无本之本,没有基础,终将无法确定新的V2.0如何布局。博客发布一个多月后,凭借着每两天发一篇文,累计到达20篇+。时机已到,V2.0版本应运而生。

分析文章的类型,将首页划分几个大块,充分展示博客的特点。或许V2.0有点太赶,内容积累不够,布局上有块空白处,不知该展示什么而苦脑着!有什么制作简单,短时间完成,弥补内容过于重复排版呢?

脑海里灵光一现,统计今天多少客人?即表达博主的热情,显示对访客的尊重,又能了解博客访客量,说干就干。

获取今天访客数量函数

PHPfunction getTodayVisitorNum() {
    $file_path = dirname(__FILE__).'/../../visitor.txt';

    if(!empty($_COOKIE["visitor"]) && $_COOKIE["visitor"] !== null) {//判断用户是否今天的访客
        return $_COOKIE["visitor"];
    }

    if(!file_exists($file_path)) {
        $data = array('num' => 1,'today' => date("Y-m-d"));
        $file = fopen($file_path,"w+"); //服务器可能生成失败,最好手动上传一个文本文件
        fwrite($file,serialize($data)); //将数组换序列化字符串写入文本
        fclose($file);

        $expire = strtotime(date("Y-m-d").' 23:59:59');
        setcookie("visitor",$data['num'], $expire);
        return $data['num'];
    }

    $data = unserialize(file_get_contents($file_path));

    if($data['today'] == date("Y-m-d")) {
        $data['num']++; //今天访客累加
    } else {
        $data['num'] = 1;
        $data['today'] = date("Y-m-d");
    }

    $expire = strtotime(date("Y-m-d").' 23:59:59'); //记录的时间只为今天为止
    setcookie("visitor",$data['num'], $expire);
    file_put_contents($file_path,serialize($data));
    return $data['num'];
} 

利用 $_cookie 的特性,记住每位访客的到来,每位访客记录时间到今天为止,凌晨过后 $_cookie 的记录时间自动消失。

存储数据使用TXT文本存储,主要因为存储的数据不是太重要,掉失不会影响太大。如果使用 MySQL数据库存储反而小题大做,只存储一个数组,响应速度也没有文本读取的快,便捷。

函数调用时,将函数放在公共调用的文件里,即可记录博客每天有多少访客的到来。

文章评论0 records

最新 最早

0

最新评论Latest comments

HentaiCatHentaiCat 2020-12-30 10:22
考科目二全程很紧张,考了三次才过,有次侧方入库直接pass,100分扣完,呜呜呜~
猫猫酱猫猫酱 2020-11-12 10:56
一入多肉深似海,说多都是泪
soulkunsoulkun 2020-11-05 15:54
IconFont的图标真的很好用!!!
无限链霉球菌无限链霉球菌 2020-11-03 11:41
药店,了解一下(`・ω・´)
HentaiCatHentaiCat 2020-11-02 15:28
(ಡωಡ)很实用,直接拿走...