马黑黑 发表于 2025-4-21 20:00

hBlog开发手记之二:访问统计模块

本帖最后由 马黑黑 于 2025-4-21 20:13 编辑 <br /><br /><h3>一、数据结构设计</h3>
<p>使用结构为 z=xxx&ip=yyy| 的文本记录当天的访问信息,其中,z 值 xxx 为当日是本年度的第几天,数据来源于 date('z'),ip 值 yyy 为访客的 ip 地址,后面加上一个符号 | 用来分隔其它 ip 地址。<br></p>
<h3>二、基本实现方法</h3>
<p>统计程序仅保留当天的信息,所以文本库的数据永远只有一行。可以通过判断机制决定数据的更新,大概这样:</p>
<div id="hEdiv1"><pre id="hEpre1">
$today = date('z'); // 今天
$lastday = getDate('z'); // 记录中的上一天(假设 getDate() 是读取记录z数据的函数

// 如果今天和记录中的z数据一致
if ($today == $lastday) {
        // ... 这里用追加方式把 ip 地址记上
// 否则,如果不一样
} else {
        // ... 这里删掉所有数据并全新记录新数据
}

// ... 然后就是从记录中获取统计当日 ip,这就得到今日访问数据了
</pre></div>
<h3>三、信息汇总</h3>
<p>访问信息汇总仅博主可见,博主登录后可以很方便地通过事先设计好的链接直达汇总页面。该页面呈现 ip 以及对应 ip 在站内的页面点击数。这里头的实现过程并不复杂,如下所示,假设所有的访问 ip 已经存储在 $ips 数组中:</p>
<div id="hEdiv2"><pre id="hEpre2">
$result = ""; // 待输出字串

// 从 ips 数组中统计 ip 的点击数(其实就是出现在数组中的次数)并将返回值传给变量 $new_ips
$new_ips = array_count_values($ips);

// 遍历新 ip 数组元素并将每个数组元素的键与键值添加到待输出变量 $result 中
foreach ($new_ips as $ip =&gt; $count) {
        $result .= "$ip :\t $count\n";
}

echo $result; //输出结果
</pre></div>
<p>这是访问统计模块大致的思路与实现,其中的诸多细节这里不便一一介绍。</p>

<script type="module">
import hlight from 'https://638183.freep.cn/638183/web/helight/helight1.js';
hlight.hl(hEdiv1, hEpre1);
hlight.hl(hEdiv2, hEpre2);
</script>

马黑黑 发表于 2025-4-21 20:01

本文首发:马黑博客

花飞飞 发表于 2025-4-21 20:31

这个厉害了。。可以看到访客IP及点击数量,还有总点击数量。。。
{:4_199:}

花飞飞 发表于 2025-4-21 20:37

整站时也有类似功后,后来就看不到IP,只看到访问量了。
之前只关注结果,{:4_173:}现在有了实现过程。。
看代码实际都只有一丢丢哎。。简洁明了实现新功能。

马黑黑 发表于 2025-4-21 20:40

花飞飞 发表于 2025-4-21 20:31
这个厉害了。。可以看到访客IP及点击数量,还有总点击数量。。。

{:4_191:}

马黑黑 发表于 2025-4-21 20:41

花飞飞 发表于 2025-4-21 20:37
整站时也有类似功后,后来就看不到IP,只看到访问量了。
之前只关注结果,现在有了实现过程。。
...

代码中使用了大量的PHP函数,PHP处理各类数据都有一大堆的函数可用,只有手册在手,查一查所需类别,就能找到自己想要的东东,然后根据情况封装一下

花飞飞 发表于 2025-4-21 20:44

马黑黑 发表于 2025-4-21 20:40


休闲时间,喝一杯果子酒{:4_173:}

马黑黑 发表于 2025-4-21 20:45

花飞飞 发表于 2025-4-21 20:44
休闲时间,喝一杯果子酒

果子酒养颜,俺可不是颜中人

花飞飞 发表于 2025-4-21 20:45

马黑黑 发表于 2025-4-21 20:41
代码中使用了大量的PHP函数,PHP处理各类数据都有一大堆的函数可用,只有手册在手,查一查所需类别,就能 ...

哦也,听你说感觉好方便的样纸喂。。。其实可没那么简单就成一个系统站了。。{:4_173:}

红影 发表于 2025-4-21 20:46

看着代码挺简便,其实里面的东西多着呢。黑黑厉害,不断开发着各种功能{:4_199:}

花飞飞 发表于 2025-4-21 20:48

马黑黑 发表于 2025-4-21 20:45
果子酒养颜,俺可不是颜中人

你不是颜如玉,你是一盅人。{:4_173:}

马黑黑 发表于 2025-4-21 20:53

红影 发表于 2025-4-21 20:46
看着代码挺简便,其实里面的东西多着呢。黑黑厉害,不断开发着各种功能

基本的有了就好,这个不追求高大全

马黑黑 发表于 2025-4-21 20:53

花飞飞 发表于 2025-4-21 20:45
哦也,听你说感觉好方便的样纸喂。。。其实可没那么简单就成一个系统站了。。

PHP门槛不算高,深入的话也不简单

马黑黑 发表于 2025-4-21 20:54

花飞飞 发表于 2025-4-21 20:48
你不是颜如玉,你是一盅人。

{:4_203:}

花飞飞 发表于 2025-4-21 20:57

马黑黑 发表于 2025-4-21 20:53
PHP门槛不算高,深入的话也不简单

{:4_170:}想当初你怎么想到去啃这么难的东东的。

花飞飞 发表于 2025-4-21 20:57

马黑黑 发表于 2025-4-21 20:54


老想喝一盅的人呗。。{:4_170:}

红影 发表于 2025-4-21 22:36

马黑黑 发表于 2025-4-21 20:53
基本的有了就好,这个不追求高大全

嗯嗯,非常实用高效{:4_187:}

马黑黑 发表于 2025-4-21 23:02

红影 发表于 2025-4-21 22:36
嗯嗯,非常实用高效

简单吧

红影 发表于 2025-4-22 20:47

马黑黑 发表于 2025-4-21 23:02
简单吧

看着非常简洁高效{:4_187:}

马黑黑 发表于 2025-4-22 21:29

红影 发表于 2025-4-22 20:47
看着非常简洁高效

谢谢
页: [1] 2
查看完整版本: hBlog开发手记之二:访问统计模块