+ -
当前位置:首页 → 问答吧 → 用PHP进行网站访问分析

用PHP进行网站访问分析

时间:2008-11-17

来源:互联网

计算出你的访客都来自哪里,在看哪个页面并不是很难,特别是你使用诸如Analog这样的Log分析器的话.
但是如果你想把报告里的结果放在fly上以供随时显示,就有需要一个不同的方法了。

6个月来,我都在忙于将我的Apache的log导入一个SQL数据库然后运行ad-hoc逆向查询它。 不幸的是,那
需要我手动收取log文件,修改一下格式,然后才能导入数据库。我希望能做得更好一些:能够持续更新,并且
足够灵活以支持多站点,多动作(查看页面,广告点击,点入,点出,或者更多,如果需要的话)。

于是,我坐下来,然后讨论下面的表格:

create table tbl_activity_log

( fld_date int, //例如: 19990101
fld_hours text, //是这一天的第几个小时?
fld_remote_ip text, //访客的IP地址
fld_action int, //动作,例如查看页面,点击等等
fld_special text,//哪一页或者是类?
fld_affil_num int //每个站点的标识代码 );


某些人可能更愿意用时间戳去取代fld_date,不过我觉得这个足够了。你也可以另加一个栏目去存放$PATH_INFO,
不过我决定从Special 栏里得到这些信息。 我同时定义了下面这些索引,因为我需要查询其中的每一个。

INDEXES idx_logger_date idx_logger_hour idx_logger_ip idx_logger_action idx_logger_special idx_logger_affil_num

下一步就是把这些信息放入表格。如果每个页面都通过PHP, 所有的站都设在一个地方就太好了。可惜我有一长
串服务器分散在全国,我还必须去24小时的收集每一个服务器上的这些资料。所以这就迫使我需要用一个1x1的GIF。

我的每个页面都有这样一个GIF: (旅行注:c=4,表示这是从4号站点发出的图片请求,b=77,是一个随机产生的乱数)

gif11.php 是一个简单的脚本,放置在我的中央服务器上。

由于那个GIF图象在每个页面,而其后有一个随机数( b=xxxx )使得每一个图象都需要从服务器重新读取,所以每一
个页面的读取都会被中央处理器观察到。 如果你所有的页面和数据库都在一个服务器上,你就不需要这个GIF了,你可以
直接将logging的代码插在每个页首。 同样的logging系统可以用来跟踪广告点击。 复制内容到剪贴板 PHP 代码:

    //or you could have a broken gif come back

    Header( "Content-type: image/gif");
    passthru( "cat clear.gif" ); //send a 1x1 gif

    $logger_action=5; //impression
    $logger_special=$s; //move the $s param for the logger
    $fld_affil_num=$c; //ditto for the $c param

    include('connect.inc'); //connect to the DB SERVER
    include('logger.inc'); //Exanded below

?>



PHP代码用来产生GIF的URL: 复制内容到剪贴板 PHP 代码:




作者: LAMP兄弟连   发布时间: 2008-11-17

热门下载

更多