AI摘要

Typecho博客系统的访客统计插件VistorLoggerPro发布,提供访问国家/地区统计、IP分布统计等详细访问统计功能,并进行隐私保护处理。

前言

第一次使用原版插件时统计图是没加载出来的,然后看着整体有些复古感觉是一个古老插件(后面找到了原插件仓库,作者还在更新,尴尬了)。于是就自己着手进行优化,后来突然想到如果做成一个模板页面放前台是怎样的,也就有了现在本站左侧访客那个页面,以及右侧博客信息中的浏览总数,数据也是出自这里,不过我还没来得及发教程。

新版插件除了保留了原插件的一些功能,还对外观,性能做了巨大优化。并且在插件中做了一个适配器adapter.php,它可以实现原版插件与当前插件的无缝衔接,这个是我开发时遇到bug弄得,后面感觉可以不用删。


介绍

这是一个为 Typecho 博客系统开发的访客统计插件,基于原版的VistorLogger修改版本。该插件提供了详细的访问统计功能,包括访问国家/地区统计、IP分布等信息,并进行了隐私保护处理。

功能特点

功能分类功能描述
数据统计功能• 四项核心指标:PV(页面浏览量)、独立IP数、独立访客数(UV)、访问次数(会话数)
• 智能会话识别:基于IP和时间间隔的会话计算(30分钟超时)
• 精准访客统计:结合IP和User-Agent的独立访客识别
• 访问国家/地区统计(Top 30)
• IP分布统计(已匿名化处理)
• 省份访问统计图表(TOP 30)
• 路由访问统计分析(页面访问量统计,显示TOP 20)
• 访问时间统计(按日期分布)
• 管理员访问自动排除
数据筛选功能• 日期范围选择器
• 快捷时间选择(今天、昨日、最近7天、本周、上周、本月、上月、最近30天、全部)
• 按钮选中状态高亮显示
• 默认只加载近7天数据,优化首次加载速度
数据展示功能• 四条曲线同时展示:支持PV、独立IP、独立访客(UV)、访问次数四项指标同屏对比
• 趋势分析页面:全新的访客趋势分析功能,支持多维度数据分析
• 动态时间轴:选择单日时自动切换为小时段显示(0:00-23:00)
• 智能图例设计:优化颜色方案和图例布局,提升可读性
• ECharts环形图表展示方式
• 列表视图支持(详细数据展示)
• 图表悬停效果(显示详细信息)
• 自适应图表区域
数据管理功能• 删除特定IP记录功能(支持模糊匹配)
• 数据库自动优化
• 时区自动转换功能,确保访客时间记录准确
兼容性功能• 适配器支持(adapter.php),实现原版VisitorLogger插件与当前插件的无缝衔接
• 自动数据迁移,保留原有统计数据
• 兼容新版Typecho(带命名空间版本)
• 智能SQL回退机制:兼容MySQL 5.5+到8.0+所有版本
• 数据库自动升级:自动检测并添加user_agent字段
• 兼容不同主题,特别优化handsome主题
性能优化• 异步API数据加载(getVisitStatistic.php和getTrendData.php)
• 解决大数据量加载问题,提高页面响应速度(从10s优化到2s)
• 智能资源加载机制:ECharts和Flatpickr的CDN优先加载,失败时自动回退到本地文件
• 多指标数据计算:重构API,支持四项指标的并行计算
• 使用CDN加载ECharts图表库,减少插件体积
• 优化移动端显示
隐私保护• IP地址匿名化处理(只显示前两段)
• 明确的隐私声明
• 符合相关法律法规要求
• 数据安全存储
界面特性• 统计摘要卡片:新增四项核心指标的数值展示区域
• 指标说明区域:详细说明PV、独立IP数、独立访客数(UV)、访问次数的概念和统计方法
• 响应式设计:指标说明区域支持桌面端4列网格和移动端单列布局
• 界面美化优化:使用彩色图标和现代化卡片设计,提升专业性
• 饼图尺寸优化:适当放大饼图显示区域(半径增加约25%),提升数据可视性
• 渐变视觉效果:为柱状图添加蓝色渐变背景和红色悬停效果
• 移动端自适应布局
• 美观的图表展示
• 列表/图表切换视图
• 优雅的加载动画

新版后台页面预览

2025-08-20T07:11:17.png

2025-08-20T07:09:05.png

2025-08-20T07:10:31.png

2025-08-19T18:12:44.png

Handsome前台效果可参考本站左侧访客导航页面
前台预览


安装及更新方法

  1. 下载插件文件(文末)
  2. 在本地解压后把目录名改为VisitorLoggerPro
  3. 将改后的文件上传到/usr/plugins目录下
  4. 在 Typecho 后台启用插件
  5. 要把该文件visitor-stats.php移动到handsome主题根目录(handsome主题适用)
  6. 直接用新版本覆盖掉旧版本即可完成更新

系统要求

项目要求
PHP版本推荐 7.4或 8.0
Typecho版本推荐 1.2.1
数据库MySQL 5.5及以上或等效数据库

使用说明

基本使用(Handsome主题适用)

  1. 在 Typecho 后台创建新页面
  2. 在页面模板中选择"访客统计"
  3. 发布页面即可看到统计效果
  4. 创建新页面,选择"访客统计"模板

隐私保护

本插件已实现以下隐私保护措施:

  • IP地址匿名化处理(只显示前两段)
  • 明确的隐私声明
  • 符合相关法律法规要求

技术实现

  • 前端:ECharts 图表库
  • 后端:PHP + MySQL
  • 数据存储:Typecho 数据库
  • 数据处理:通过API异步加载,提高性能

更新日志

版本类型更新内容
v2.2.8
(2025-08-20)
图表精细化优化线条宽度优化:将所有趋势线条宽度从4px减小到2px,符号大小从8px减小到6px
左轴刻度智能优化:重构Y轴刻度算法,左轴最大值设为刚好比数据最大值大的整数+1,消除过多空白区域
动态间隔计算:根据数据范围智能计算Y轴间隔(1、5、10、20、50、100),提升图表可读性
线条区分度提升:优化后的图表能更清晰地区分IP数、访客数(UV)、访问数(SV)三条线的变化趋势
视觉平衡改进:图表整体更加精致,避免了线条过粗带来的视觉负担
技术改进刻度算法重构:从复杂的分段判断简化为基于数据驱动的动态计算
显示精度提升:确保每条线的微小变化都能在图表上清晰体现
用户体验优化:解决了数据值较小时线条重合难以区分的问题
v2.2.7
(2025-08-19)
用户体验优化趋势分析页面说明:在趋势图表下方新增四项核心指标详细说明区域
指标概念解释:详细说明PV、独立IP数、独立访客数(UV)、访问次数的概念和统计方法
技术实现展示:展示各指标的SQL查询语句和数据获取方式
响应式设计:指标说明区域支持桌面端4列网格和移动端单列布局
界面美化优化:使用彩色图标和现代化卡片设计,提升专业性
代码结构优化精简文件结构:移除冗余的header.php、footer.php、menu.php文件
代码内嵌优化:将HTML头部和尾部代码直接集成到主要文件中
减少依赖关系:简化文件引用结构,提升代码可维护性
v2.2.6
(2025-08-19)
图表视觉优化饼图显示优化:去除冗余标题,仅保留"路由访问统计"标题,界面更简洁
饼图尺寸优化:适当放大饼图显示区域,提升数据可视性和视觉效果
路由统计增强:路由显示数量从10个扩展到20个,提供更全面的访问分析
柱状图完整显示:解决路由访问统计图加载不完整问题,增加底部空间并优化标签显示
渐变视觉效果:为柱状图添加蓝色渐变背景和红色悬停效果,提升交互体验
界面细节改进标签显示优化:调整饼图标签显示逻辑,适应放大后的图表尺寸
图例布局调整:优化图例位置和间距,适配更大的饼图显示
移动端适配:改进小屏设备上的图表布局和显示效果
v2.2.5
(2025-08-19)
兼容性改进智能SQL回退机制:实现SQL窗口函数的智能回退,兼容MySQL 5.5+到8.0+所有版本
数据库自动升级:自动检测并添加user_agent字段,无需手动操作数据库
错误处理优化:完善API响应错误信息,便于问题排查和调试
性能优化查询性能提升:优化单日和多日数据查询算法,支持按小时和按天双维度统计
内存使用优化:重构数据库查询逻辑,减少内存占用
加载速度提升:改进前端默认加载逻辑,提升用户体验
v2.2.0
(2025-08-19)
图表功能升级四条曲线同时展示:支持PV、独立IP、独立访客(UV)、访问次数四项指标同屏对比
智能图例设计:优化颜色方案和图例布局,提升可读性
交互体验优化:改进悬停提示和图表动画效果
移动端适配:优化小屏设备上的图表显示和统计摘要布局
视觉设计改进统计摘要卡片:新增四项核心指标的数值展示区域
响应式布局:完善移动端统计项目的排列和显示
配色方案优化:采用专业的数据可视化配色,提升视觉效果
v2.1.5
(2025-08-19)
API架构升级多指标数据计算:重构getTrendData.php,支持四项指标的并行计算
智能会话算法:实现基于IP和时间间隔(30分钟)的会话识别算法
数据聚合优化:优化大数据量场景下的查询性能和响应速度
错误容错机制:增强API稳定性,提供详细的错误信息反馈
算法实现UV计算逻辑:基于IP+User-Agent组合的独立访客识别算法
会话识别机制:30分钟超时的智能会话计算,支持跨日统计
时间维度处理:单日按小时统计,多日按天统计的自适应算法
v2.1.4
(2025-08-19)
数据库架构升级新增user_agent字段:扩展visitor_log表结构,支持更精准的访客识别
自动结构升级:插件启用时自动检测并升级数据库表结构
数据完整性保障:确保现有数据完整性,新字段向后兼容
统计指标体系重构四项核心指标:全新引入PV(页面浏览量)、独立访客数(UV)、访问次数(会话数)
精准统计算法:结合IP地址和User-Agent的独立访客识别机制
数据记录增强:开始记录User-Agent信息,提升统计准确性
v2.1.3
(2025-08-19)
新增功能趋势分析页面:全新的访客趋势分析功能,支持独立IP和访客总数双曲线图表
智能时间范围:新增昨日、本周、上周、本月、上月快捷选择
动态时间轴:选择单日时自动切换为小时段显示(0:00-23:00)
数据统计显示:在图表中显示选定时间范围内的总访客数和独立IP数
自适应全部时间:全部时间范围自动从第一条访客记录开始计算
优化改进• 优化API数据获取逻辑,提升趋势分析页面加载速度
• 改进图表交互体验,支持悬停显示详细数据
• 完善错误处理机制,提供更好的用户反馈
v2.1.2
(2025-08-13)
优化智能资源加载机制:实现ECharts和Flatpickr的CDN优先加载,失败时自动回退到本地文件
提升加载稳定性:解决网络环境不稳定时图表库加载失败的问题
优化用户体验:无需手动选择加载方式,系统自动选择最佳加载策略
增强容错能力:多重加载保障,确保图表功能正常运行
技术改进• 重构资源加载逻辑,采用Promise-based异步加载
• 添加详细的加载状态日志,便于问题排查
• 优化错误处理机制,提供友好的用户提示
v2.1.1
(2025-06-21)
优化• 移除本地chart.js文件(约200KB),减少插件体积
• 全部使用CDN加载ECharts图表库
修复• 删除panel.php中对本地chart.js的引用
v2.1.0
(2025-06-18)
前台优化• 新增API端点(getVisitStatistic.php)处理数据聚合
解决前台大数据量加载问题,提高页面响应速度(10到2s)
• 添加日期范围选择器和快捷按钮(今天、最近7天、最近30天、全部)
• 实现按钮选中状态高亮显示
• 优化首次加载速度,默认只加载近7天数据
• 增高环形图展示区域,改善视觉效果
• 修复图表悬停效果
后台优化• 添加删除特定IP记录功能(支持模糊匹配)
重构图表加载逻辑,使用异步API获取数据
• 添加省份访问统计图表
• 优化后台路由统计,解决X轴信息重叠问题
• 优化日期选择功能
修复• 修复内容解码错误(ERR_CONTENT_DECODING_FAILED)
• 修复SQL错误(Unknown column 'province')
v2.0.2
(2025-06-13)
功能增强新增后台忽略IP名单功能,支持多种IP格式
• 前台删除管理员(自己)访问记录功能,保持统计数据纯净
优化CDN环境下IP识别机制,解决IP不准确问题
• 添加IP地址过滤器,支持自定义过滤规则
修复修复PHP 8.0环境下的弃用函数警告
• 修复在某些主题下的样式冲突问题
• 修复日期选择器在移动端的显示问题
• 优化数据库查询,减少资源占用
v2.0.1
(2025-05-15)
功能改进• 修复时区问题:将数据库time字段从TIMESTAMP改为DATETIME类型
• 添加服务器时区自动转换功能,确保访客时间记录准确
• 优化数据迁移处理,自动转换已有记录的时区
添加适配器(adapter.php),实现原版插件与当前插件的无缝衔接
修复• 修复时区显示不正确的问题
• 修复数据库查询兼容性问题
v2.0.0
(2025-04-23)
主要功能• 初始版本发布
• 实现基本访客统计功能
• 国家/地区访问统计
• IP分布统计(已匿名化处理)
• ECharts环形图表展示方式
• 列表视图支持
• 移动端适配
隐私保护• IP地址匿名化处理(只显示前两段)
• 明确的隐私声明
• 符合相关法律法规要求
其他• 优化移动端显示
• 管理员访问自动排除

问题说明


插件启用失败解决办法:
有一部分小伙伴之前使用过VisitorLogger插件,然后如果直接启用VisitorLoggerPro的话会报错
1、只需要把VisitorLogger相关文件全部删除即可,也就是两者不能共存。
2、数据库表不需要修改,但也可以把bot_list表删掉因为用不到。


最后

希望大家顺手点点star

如果有使用问题或者开发建议,可在评论区提出

Github地址:

此处内容需要评论回复后(审核通过)方可阅读。

最后修改:2025 年 08 月 20 日
如果觉得我的文章对你有用,请随意赞赏
END
本文作者:
文章标题:VistorLoggerPro - Typecho访客统计和趋势分析插件
本文地址:https://blog.ybyq.wang/archives/97.html
版权说明:若无注明,本文皆Xuan's blog原创,转载请保留文章出处。