首页 > 编程 > PHP > 正文

php实现统计网站在线人数的方法

2019-11-21 23:01:48
字体:
来源:转载
供稿:网友

本文实例讲述了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 . "/t" . $ip . "/r/n"; 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("/t", $val);  if ($seti ==$ip) {   $arr[$key] = $time . "/t" . $seti;   $flag = 1;  } else {   $currentTime = time();   if ($currentTime - $when > 900) {   unset($arr[$key]);   }else{   $arr[$key]=$val;   }  }   }  }  if ($flag == 0) {  array_push($arr, $time . "/t" . $ip); }  $count = count($arr); $str = implode("/r/n", $arr); $str.="/r/n"; writeover($fileCount, $str, 'w', 0); unset($arr); }  return $count;} $time = time();$ip = getIpAddress();$online_num = count_online_num($time,$ip);echo $online_num;?>

希望本文所述对大家的php程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表