Welcome 微信登录

首页 / 网页编程 / PHP / php实现统计网站在线人数的方法

本文实例讲述了php实现统计网站在线人数的方法。分享给大家供大家参考。具体实现方法如下:
<?phpfunction getIpAddress() { // 取得当前用户的IP地址 if (getenv("HTTP_CLIENT_IP")) { $ip = getenv("HTTP_CLIENT_IP"); } elseif (getenv("HTTP_X_FORWARDED_FOR")) { $ip = getenv("HTTP_X_FORWARDED_FOR"); } elseif (getenv("REMOTE_ADDR")) { $ip = getenv("REMOTE_ADDR"); } else { $ip = $_SERVER["REMOE_ADDR"]; }return $ip;} function writeover($filename,$data,$method = "w",$chmod = 0){ $handle = fopen($filename, $method); !handle && die("文件打开失败"); flock($handle, LOCK_EX); fwrite($handle, $data); flock($handle, LOCK_UN); fclose($handle); $chmod && @chmod($filename, 0777);} function count_online_num($time, $ip) { $fileCount = "./count.txt"; $count = 0; $gap = 900; //15分钟不刷新页面就 if (!file_exists($fileCount)) { $str = $time . "	" . $ip . "
"; writeover($fileCount, $str, "w", 1); $count = 1; } else { $arr = file($fileCount); $flag = 0; foreach($arr as $key => $val) {$val= trim($val);if ($val != "") {list($when, $seti) = explode("	", $val);if ($seti ==$ip) { $arr[$key] = $time . "	" . $seti; $flag = 1;} else { $currentTime = time(); if ($currentTime - $when > 900) { unset($arr[$key]); }else{ $arr[$key]=$val; }} }}if ($flag == 0) {array_push($arr, $time . "	" . $ip); }$count = count($arr); $str = implode("
", $arr); $str.="
"; writeover($fileCount, $str, "w", 0); unset($arr); }return $count;} $time = time();$ip = getIpAddress();$online_num = count_online_num($time,$ip);echo $online_num;?>
希望本文所述对大家的php程序设计有所帮助。