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

本文实例讲述了php实现统计网站在线人数的方法。分享给大家供大家参考。具体实现方法如下:

  <?php  function 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 . "rn";   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("rn", $arr);   $str.="rn";   writeover($fileCount, $str, 'w', 0);   unset($arr);   }    return $count;  }   $time = time();  $ip = getIpAddress();  $online_num = count_online_num($time,$ip);  echo $online_num;  ?>

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

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

郑重声明:本网站发布的内容(图片、视频和文字)以及用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服

发表评论

登录后才能评论