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 => $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>
本文首发:马黑博客 这个厉害了。。可以看到访客IP及点击数量,还有总点击数量。。。
{:4_199:} 整站时也有类似功后,后来就看不到IP,只看到访问量了。
之前只关注结果,{:4_173:}现在有了实现过程。。
看代码实际都只有一丢丢哎。。简洁明了实现新功能。 花飞飞 发表于 2025-4-21 20:31
这个厉害了。。可以看到访客IP及点击数量,还有总点击数量。。。
{:4_191:} 花飞飞 发表于 2025-4-21 20:37
整站时也有类似功后,后来就看不到IP,只看到访问量了。
之前只关注结果,现在有了实现过程。。
...
代码中使用了大量的PHP函数,PHP处理各类数据都有一大堆的函数可用,只有手册在手,查一查所需类别,就能找到自己想要的东东,然后根据情况封装一下 马黑黑 发表于 2025-4-21 20:40
休闲时间,喝一杯果子酒{:4_173:} 花飞飞 发表于 2025-4-21 20:44
休闲时间,喝一杯果子酒
果子酒养颜,俺可不是颜中人 马黑黑 发表于 2025-4-21 20:41
代码中使用了大量的PHP函数,PHP处理各类数据都有一大堆的函数可用,只有手册在手,查一查所需类别,就能 ...
哦也,听你说感觉好方便的样纸喂。。。其实可没那么简单就成一个系统站了。。{:4_173:} 看着代码挺简便,其实里面的东西多着呢。黑黑厉害,不断开发着各种功能{:4_199:} 马黑黑 发表于 2025-4-21 20:45
果子酒养颜,俺可不是颜中人
你不是颜如玉,你是一盅人。{:4_173:} 红影 发表于 2025-4-21 20:46
看着代码挺简便,其实里面的东西多着呢。黑黑厉害,不断开发着各种功能
基本的有了就好,这个不追求高大全 花飞飞 发表于 2025-4-21 20:45
哦也,听你说感觉好方便的样纸喂。。。其实可没那么简单就成一个系统站了。。
PHP门槛不算高,深入的话也不简单 花飞飞 发表于 2025-4-21 20:48
你不是颜如玉,你是一盅人。
{:4_203:} 马黑黑 发表于 2025-4-21 20:53
PHP门槛不算高,深入的话也不简单
{:4_170:}想当初你怎么想到去啃这么难的东东的。 马黑黑 发表于 2025-4-21 20:54
老想喝一盅的人呗。。{:4_170:} 马黑黑 发表于 2025-4-21 20:53
基本的有了就好,这个不追求高大全
嗯嗯,非常实用高效{:4_187:} 红影 发表于 2025-4-21 22:36
嗯嗯,非常实用高效
简单吧 马黑黑 发表于 2025-4-21 23:02
简单吧
看着非常简洁高效{:4_187:} 红影 发表于 2025-4-22 20:47
看着非常简洁高效
谢谢
页:
[1]
2