Home > Backend Development > PHP Tutorial > How to implement statistics on the number of people online on a website in PHP_PHP Tutorial

How to implement statistics on the number of people online on a website in PHP_PHP Tutorial

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

How to use php to count the number of people online on a website

This article describes the example of how to use php to count the number of people online on a website. Share it with everyone for your reference. The specific implementation method is as follows:

 ?

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 . "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;

?>

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() { // Get the current user’s IP address<🎜> <🎜>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("File opening failed");<🎜> <🎜>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; //If you don’t refresh the page for 15 minutes<🎜> <🎜>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; ?>

I hope this article will be helpful to everyone’s PHP programming design.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1000121.htmlTechArticleHow to use PHP to count the number of people online on a website. This article explains how to use PHP to count the number of people online on a website. Share it with everyone for your reference. The specific implementation method is as follows: ? 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