php ajax网站浏览统计功能的简单实现

我填过啦

我填过啦

2016-02-19 11:32

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享php ajax网站浏览统计功能的简单实现教程,希望对大家能有一点小小的帮助。
使用PHP语言实现,如果你看不明白,请留言.... 相信原理都差不多..
为什么使用PHP做范例语言?
不外乎两个因素: 1. PHP语法通俗易懂,有一点程序基础的人就可以了解;2.代码量比较少
本功能实现的代码的目录结构见 [ajax实时任务提示功能的实现 -- vb2005xu自己动手系列(1)],这个可以作为它的插件插入,这里也是阐述一种开发思想:在网站开发的过程中,功能是逐步添加的,一开始并不能也不可以做到尽善尽美的设计.建议在刚开始的时候规划好项目的结构,后期好使用插件扩展功能实现.. 本人表达能力不好,哪位好的请留言表述,我将综合大家的东西改进,谢谢!
个人推荐JAVA web 初级开发者使用三层模型的架构来开发,不管现在是否流行,他始终是一种好的开发规范!
个人推荐PHP web 初级开发者使用MVC模型来开发网站,如果是开发富客户端的系统,则建议将VC两层[其实是一层半]全部分担给客户端也就是浏览器[和用户]来完成. 为什么说是"一层半",V全部给客户端,C的一半给浏览器[功能的连接地址],一半在服务器端执行[代码实现],比如使用EXTJS来开发的时候.....

不再闲聊,让我们进入正题吧:还是之前的风格,先给大家看代码,不明白的请留言,我们共同探讨,高手也请留下精彩言论,我好总结,帮助我们这些入门者,谢谢大家.
再次说明功能基于之前文章 [ajax实时任务提示功能的实现 -- vb2005xu自己动手系列(1),这个也可以当成是一个插件],但是功能完全独立出来了,之后的一系列文章也是在此之上进行扩展,当是领着大家实现一个完整的项目,比如后面会讲到用户授权的实现[将采用RBAC,J基于角色的访问控制 来实现],UI层也会使用EXTJS来做,也有站内邮件也就是短信息的实现等等
为了方便插件的插入和功能的扩展,所以在这里我们要改动代码结构
第一, 改下[ajax实时任务提示功能的实现]讲到的/ucren/taskofpig/Controller/Default.php,
修改以下位置:
1. 将文件名称由Default.php改为TaskOfPig.php
2. 将里面的类名称由Controller_Default 改为Controller_TaskOfPig
3. 修改这个类的构造函数名称由Controller_Default 改为Controller_TaskOfPig
其他代码不变
第二,新建一个/ucren/taskofpig/Controller/Default.php文件
里面代码如下,暂时只有这些
?php
class Controller_Default extends FLEA_Controller_Action
{
function actionIndex(){
redirect(url('TaskOfPig'),0); //停顿0秒后,重定向到index.php?ctl=TaskOfPig
}
}
?

对于这个文件中使用的连接设置ctl参数见[ajax实时任务提示功能的实现]中的/ucren/taskofpig/appConfig.php
文件的controllerAccessor 设置.

//各位注意目录使用Serv这是这个它是一个插件,(*^__^*) 嘻嘻……
/ucren/taskofpig/Serv/VisiterService.php
?php
class Serv_VisiterService
{
var $log_file ;
function Serv_VisiterService($log_file) //必须传递日志文件路径进来
{
$this-log_file = $log_file ;
}
function addVisiter()
{
$newVisiter = array(
'guest_ip' = $_SERVER["REMOTE_ADDR"] ,
'time' = date('Y-m-d H:i:s') ,
'guest_port' = $_SERVER["REMOTE_PORT"] ,
'request_uri' = $_SERVER["REQUEST_URI"] ,
'accept_lang' = $_SERVER["HTTP_ACCEPT_LANGUAGE"] ,
'os_info' = $_SERVER["HTTP_USER_AGENT"]
);
//$fp = fopen("{$this-prj_dir}/_log/visiter.dat","a+b");
$fp = fopen($this-log_file,"a+b");
fwrite($fp,serialize($newVisiter));
//写入换行符--LINUX是n windows是 rn ,这里要求注意 单引号与双引号的区别
fwrite($fp,"rn");//单引号不转义
fclose($fp);
}
function getVisiters()
{
if (!file_exists($this-log_file))
return null ;
$visiterArr_tmp = file($this-log_file) ;//将文件读入数组中
foreach($visiterArr_tmp as $visiter)
{
$visiterArr[] = unserialize($visiter) ;
}
return $visiterArr ;
}
}
?

这里在上文中新建的/ucren/taskofpig/Controller/Default.php文件中添加如下代码,完整代码如下
?php
FLEA::loadFile('Serv_VisiterService.php',true) ;//加载访客统计插件代码到程序中
class Controller_Default extends FLEA_Controller_Action
{
var $prj_dir ;var $visiters ;var $smarty ;
function actionIndex(){
$this-prj_dir = '.' ;
$this-smarty = $this-_getView(); //获取smarty模板对象,在/ucren/taskofpig/appConfig.php中配置
$this-visiters = new Serv_VisiterService("{$this-prj_dir}/log/visiter.dat") ;
//添加访客
$this-visiters-addVisiter();
redirect(url('TaskOfPig'),0); //停顿0秒后,重定向到index.php?ctl=TaskOfPig
}
function actionVisiters() //访客统计列表
{
$this-smarty-assign('sitename','任务计划表 -- 生气猪') ;
$this-smarty-assign('opname','访客统计') ;
$rows = $this-visiters-getVisiters();
$this-smarty-assign('rowSet',$rows);
$this-_showPage('taskofpig.visiterlist.html');
}
}
?

/ucren/taskofpig/tpl/taskofpig.visiterlist.html
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"
html
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
title%$sitename% -- %$opname%/title
/head
body
hr
table width="100%" cellspacing="1" bgcolor="#cfdadc"
tr bgcolor="#e8edec" style="text-align:center"
tdb访问次序/b/td
tdbIP地址/b/td
tdb日期/时间/b/td
tdb客户机信息/b/td
/tr
%section name=rowIndex loop=$rowSet%
tr style="text-align:center"
%*注意怎么获取rowIndex的语法*%
td%$smarty.section.rowIndex.index%/td
td%$rowSet[rowIndex].guest_ip%/td
td%$rowSet[rowIndex].time%/td
td%$rowSet[rowIndex].os_info%/td
/tr
%/section%
/table
/body
/html
这样就可以在浏览器中敲入
http://localhost/ucren/taskofpig 进入,缺省将在后台加入访问者信息,如果你敲入
http://localhost/ucren/taskofpig/index.php?act=visiters
可以进入来访者信息查看页面,例子截图如下
展开更多 50%)
分享

猜你喜欢

php ajax网站浏览统计功能的简单实现

Web开发
php ajax网站浏览统计功能的简单实现

简单示例:AJAX结合PHP代码实现登录

PHP
简单示例:AJAX结合PHP代码实现登录

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

用Php实现链结人气统计

PHP
用Php实现链结人气统计

简单的AJAX实现(HELLO AJAX)

Web开发
简单的AJAX实现(HELLO AJAX)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

用AJAX实现聊天功能

PHP
用AJAX实现聊天功能

IE9浏览器固定网站功能的实现方法

浏览器
IE9浏览器固定网站功能的实现方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

最常用的PHP正则表达式收集整理

最常用的PHP正则表达式收集整理

IOS检测指定路径的文件是否存在

IOS检测指定路径的文件是否存在
下拉加载更多内容 ↓