今天閒來無事,想在博客統計中顯示在線人數。在網上找了好多例子,不是數據庫存儲數據就是文件存儲,代碼也看起來過於復雜。
晚上回來後,構思了下,看到我服務器中安裝有 Memcache 服務,何不用 Memcache 實現呢。
下面就來講下實現過程:
效果圖:
實現代碼:
<?php $mc = new Memcache (); // 連接memcache $mc->connect ( "127.0.0.1", 11211 ); // 獲取 在線用戶 IP 和 在線時間數據 $online_members = $mc->get ( 'online_members' ); // 如果為空,初始化數據 if (! $online_members) { $online_members = array (); } // 獲取用戶ip $ip = $_SERVER ["REMOTE_ADDR"]; // 為訪問用戶重新設置在線時間 $online_members [$ip] = time (); foreach ($online_members as $k => $v) { // 如果三分鐘後再未訪問頁面,剛視為過期 if (time() - $v > 180) { unset($online_members[$k]); } } // 重新設置在線用戶數據 $mc->set ( 'online_members', $online_members ); // 重新獲取在線用戶數據 $online_members = $mc->get ( 'online_members' ); // 輸入統計在線人數 echo count($online_members); ?>