注:这套程序,用的是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*/