用PHP做网站访客统计,听起来好像有点多此一举,想想有那么多好用的统计工具不用,偏偏想自己写?不过,有时还是按项目需求走吧。
就当我是在废话吧,还是想唠叨一下PV、UV、IP三者的定义与区别。
PV(page view)(推荐学习:PHP编程从入门到精通)
页面访问量,即此页面(站点)被打开过多少次,比如打开本博首页然后有电击进入了本文,此时便为本博贡献了2PV,本文1PV,如果您现在手滑按了下F5,那么就为本博贡献了3PV(首页1+本文2)。
UV(Unqie Vistor)
独立访客数,指的是不同的、通过互联网访问、浏览一个网页的自然人。一般情况下,是使用COOKIE进行区分。比如,您现在访问了本文,会给本博UV加1,随后您关闭了浏览器,接着您的朋友又用您的电脑访问了本博,此时,UV是不会变的,因为浏览器的COOKIE没变。再比如,您使用新浪微博登录访问的本博,随后退出帐号,又用腾许微博登录访问本博,那么先后就会给本博UV加2,因为浏览器记录到了两个用户。
IP(internet protocol)
独立IP数目,记录访问本博的真实IP数量,可以使用程序记录,也可以通过分析服务器日志统计。
前面也有说到IP和UV这里有些绕。可以拿下面几种情况理解。
您家里有多台电脑,都连了家里的一个路由器,这是通过不同的PC访问本博,只会记录一个IP数,因为对外IP是一样的。但是会记录多个UV,因为记录到了多个不同的COOKIE,甚至在同一电脑上使用不同的浏览器都有可能会加两个UV。在登录的情况下,就算同一PC、同一浏览器,只要是多个用户访问,都会加多个UV的。此时不巧您忽然断网了,过了一会重新拨号上网,IP变了,这时候本博的IP数会再加1,但是如果还是使用刚才的PC,刚才的浏览器访问本博的话,UV是不会变的,因为您的的COOKIE没变。
这样大概就可以理解了吧?当然,或许您会说,UV存在客户端的COOCKIE中,这不就意味着可以伪造了吗?这个安心啦,首先不说谁会没事儿搞这个,其次是我记得《大数据时代》中,作者好像反复强调数据的非准确性。
<?php header('Content-type:text/html;charset=utf-8'); //统计流量(人数,访问次数,用户IP) //假设用户访问,得到IP地址 $remote = $_SERVER['REMOTE_ADDR']; //拼凑要写入到文件的数据:ip|2018-5-20 10:24:15 $write = $remote . '|' . date('Y-m-d H:i:s'); //输出信息:挡墙网页已经被第几次访问,当前用户是第几次来访问 $str = file_get_contents('record.txt'); //定义一个变量保存当前用户的点击次数 $clickcount = 1; //判断当前有没有记录访问信息 if($str){ //有数据 //以行区分当前文件有多少行 $rows = explode("\r\n",$str); //获取已经访问过的用户的数量 $count = count($rows) + 1; //判断当前用户是第几次访问该网页 foreach($rows as $value){ //value代表一个访问记录 $ip = explode("|",$value); //判读是不是当前用户查看的 if($ip[0] == $remote){ //以前访问的记录与当前用户的ip相同 $clickcount++; } } //修改write $write = "\r\n" . $write; }else{ //当前用户是第一个来访问该网页 $count = 1; } //写入数据 file_put_contents('record.txt',$write,FILE_APPEND); //输出信息 echo "当前网页已经是第{$count}次被访问<br/>"; echo "您是第{$clickcount}次来访问该网页<br/>"; //localhost/record.php
Atas ialah kandungan terperinci php网站的访问人数怎么统计. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!