首页/ 填坑/ 文章详情

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

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

凡心的仙人凡心的仙人 03-18 14:35
谢谢你了!
rantrismrantrism 2023-04-03 11:27
您好~我是腾讯云开发者社区运营,关注了您分享的技术文章,觉得内容很棒,我们诚挚邀请您加入腾讯云自媒体分享计划。完整福利和申请地址请见:https://cloud.tencent.com/developer/support-plan 作者申
唐牛才是食神唐牛才是食神 2022-06-15 10:51
(*°▽°*)八(*°▽°*)♪,解决了
唐牛才是食神唐牛才是食神 2022-06-15 10:49
发现不得了的东西,今晚回去好好研究下...
胖螺胖螺 2022-02-04 00:58
( ゜- ゜)つロ 在写了在写了。看到也有些感慨。因为站长前年在我原博客的留言,让我毅然选择去深造,选择读研,曾经我想过挺多东西的,还是自己本专业的适合我自己。在这先表达感谢。新年快乐!