首頁  >  文章  >  後端開發  >  php網站的訪客人數怎麼統計

php網站的訪客人數怎麼統計

(*-*)浩
(*-*)浩原創
2019-09-17 10:54:073865瀏覽

用PHP做網站訪客統計,聽起來好像有點多此一舉,想想有那麼多好用的統計工具不用,偏偏想自己寫?不過,有時還是會依照專案需求走吧。

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(&#39;Content-type:text/html;charset=utf-8&#39;);

 //统计流量(人数,访问次数,用户IP)

 //假设用户访问,得到IP地址

$remote = $_SERVER[&#39;REMOTE_ADDR&#39;];

 //拼凑要写入到文件的数据:ip|2018-5-20 10:24:15

$write = $remote . &#39;|&#39; . date(&#39;Y-m-d H:i:s&#39;);

 //输出信息:挡墙网页已经被第几次访问,当前用户是第几次来访问

$str = file_get_contents(&#39;record.txt&#39;);

 //定义一个变量保存当前用户的点击次数

$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(&#39;record.txt&#39;,$write,FILE_APPEND);

 //输出信息

echo "当前网页已经是第{$count}次被访问<br/>";

echo "您是第{$clickcount}次来访问该网页<br/>";

 //localhost/record.php

以上是php網站的訪客人數怎麼統計的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn