网站流量统计分析程序

注:这套程序,用的是thinkphp5框架做的。

第一步,将访客的浏览信息入库,用的是mysql数据库:

在这套程序中,一共新建五张表

第一张表:log(日志表)

第二张表:visitor(访客表)

第三张表:referer(referer来源表)

第四张表:report(用户浏览信息记录表)

第五张表:region(用户所属地域信息表)

/*** 保存访客的浏览信息数据* @author Mr.X* @method get/post* @time 2018/02/08* @param website 用户UID* @param saveDays 日志保存天数* @param browserName 访客浏览器名称* @param browserVersion 访客浏览器版本* @param lang 访客浏览器的语言* @param visitor_id 访客ID* @param device 访客设备* @param osName 访客操作系统名称* @param createdTime 访客创建时间* @param http_referer 链接到当前页面的前一页面的地址* @param referer_id 链接ID* @param searchEngine 搜索引擎* @param keywords 关键词* @param current_url 当前页面的url* @param client_ip 客户端IP* @param clientDevice* @param account 电脑用户名*/

保存访客的浏览信息数据具体实现代码如下:

(1)清除30天之前的log数据

(2)将获取过来的visitor信息入库,新增访客记录,如果访客已存在,则返回已存在的访客:

(3)将获取过来的referer信息入库

(4)将获取过来的report信息入库同时将log信息入库

(5)将获取过来的region信息入库

附:获取客户端ip

附:获取浏览器的名称和版本

附:获取操作系统信息

第二步:网站流量数据展示

1、获取流量统计数据(ip,访客数,浏览量)

/*** 获取流量统计数据*

@author Mr.X*

@method get/post*

@time 2018/02/08*

@param website 站点网址*

@param mode 查询时间段关键词*

@param begin 按时间查询,开始时间*

@param end 按时间查询,结束时间

*/

/*** Get hour labels of one date.**

@param int $day*

@param bool $showDate*

@access public* @return array

*/

/***Get day labels between begin and end date..**

@paramint$begin*

@paramint$end*

@accesspublic*

@returnvoid

*/

2、获取昨天的浏览记录

/*** 获取昨天的浏览结果* @author Mr.X* @method get/post* @time 2018/02/08* @param uid 用户uid*/

3、获取今天的浏览结果

/*** 获取今天的浏览结果*

@author Mr.X* @method get/post* @time 2018/02/08* @param uid 用户uid*/

4、获取基本数据报告

/*** 获取基本数据报告* @author Mr.X* @method get/post* @time 2018/02/08* @param type* @param timeType* @param labels*/

5、获取域名列表

/*** 获取域名列表.* @author Mr.X* @time 2018/02/08* @method get/post* @param website* @param begin* @param end* @param mode*/

6、获取来路域名

7、获取type-item流量统计数据

/*** 获取type-item流量统计数据* @author Mr.X* @method get/post* @time 2018/02/08* @param website 站点网址* @param mode 查询时间段关键词* @param begin 按时间查询,开始时间* @param end 按时间查询,结束时间* @param type 统计类型* @param item 统计某一类型的某一个元素*/

8、获取昨天的type-item报告结果

/*** 获取昨天的type-item报告结果*

@author Mr.X*

@method get/post*

@time 2018/02/08*

@param uid 用户uid

*/

9、获取今天的type-item报告结果

/*** 获取今天的type-item报告结果*

@author Mr.X*

@method get/post*

@time 2018/02/08*

@param uid 用户uid

*/

10、获取type-item数据报告

/*** 获取type-item数据报告*

@author Mr.X*

@method get/post*

@time 2018/02/08*

@param type*

@param timeType*

@param labels

*/

11、获取饼图数据

/*** 获取饼图数据*

@author Mr.X* @method get/post* @time 2017/08/11* @param website* @param type* @param begin* @param end*/