您好,登錄后才能下訂單哦!
這篇文章給大家介紹怎么在php中使用Session對在線人數進行統計,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
<?php /* @ PHP 在線人數統計程序 Copyright (c) by Pader 1:25 2009年1月7日 How to use it: <script src="online.php"></script> note: 一般獨立在線人數統計程序都是統計在線的IP數,而這并不準確 例如局域網的訪問者,比如公司,學校機房和網吧,雖然內網IP不同,但是外網IP都是一樣 如果同一個局域網的無論多少人人訪問你的網站則只被認為是一個人 這個小巧的程序解決了此問題,它以電腦為單為,每臺電腦便算一個訪問者 當然因為使用的是COOKIE,如果你在同一臺電腦上使用兩種不同核心的瀏覽器訪問那就別當別論了 */ $filename = 'online.txt'; //數據文件,如果沒有新建 $cookiename = 'VGOTCN_OnLineCount'; //cookie名稱 $onlinetime = 600; //在線有效時間,單位:秒 (即600等于10分鐘) @$online = file($filename); //數據文件,如果沒有新建 $nowtime = time(); $nowonline = array(); /* @ 得到仍然有效的數據 */ if(!empty($online)){ foreach($online as $line) { $row = explode('|',$line); $sesstime = trim($row[1]); if(($nowtime - $sesstime) <= $onlinetime) { //如果仍在有效時間內,則數據繼續保存,否則被放棄不再統計 $nowonline[$row[0]] = $sesstime; //獲取在線列表到數組,會話ID為鍵名,最后通信時間為鍵值 } } } /* @ 創建訪問者通信狀態 使用cookie通信 COOKIE 將在關閉瀏覽器時失效,但如果不關閉瀏覽器,此 COOKIE 將一直有效,直到程序設置的在線時間超時 */ if(isset($_COOKIE[$cookiename])) { //如果有COOKIE即并非初次訪問則不添加人數并更新通信時間 $uid = $_COOKIE[$cookiename]; } else { //如果沒有COOKIE即是初次訪問 $vid = 0; //初始化訪問者ID do { //給用戶一個新ID $vid++; $uid = 'U'.$vid; } while (array_key_exists($uid,$nowonline)); setcookie($cookiename,$uid); } $nowonline[$uid] = $nowtime; //更新現在的時間狀態 /* @ 統計現在在線人數 */ $total_online = count($nowonline); /* @ 寫入數據 */ if($fp = @fopen($filename,'w')) { if(flock($fp,LOCK_EX)) { rewind($fp); foreach($nowonline as $fuid => $ftime) { $fline = $fuid.'|'.$ftime."\n"; @fputs($fp,$fline); } flock($fp,LOCK_UN); fclose($fp);
關于怎么在php中使用Session對在線人數進行統計就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。