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

WBOY
Release: 2016-07-13 09:53:35
Original
768 people have browsed it

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

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

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

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 . "\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程序设计有所帮助。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1000121.htmlTechArticlephp实现统计网站在线人数的方法 本文实例讲述了php实现统计网站在线人数的方法。分享给大家供大家参考。具体实现方法如下: ? 1 2 3 4...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!