您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何在PHP中使用cookie統計在線人數,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
online.php文件:
<?php $filename = 'online.txt'; //數據文件 $cookiename = 'VGOTCN_OnLineCount'; //cookie名稱 $onlinetime = 600; //在線有效時間,單位:秒 (即600等于10分鐘) $online = file($filename); $nowtime = time(); $nowonline = array(); /* @ 得到仍然有效的數據 */ 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); } } echo 'document.write("'.$total_online.'");'; ?>
通過注釋中的說明可知,如下js語句訪問即可:
<script src="online.php"></script>
關于如何在PHP中使用cookie統計在線人數就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。