ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルで Web サイト上のオンライン人口の統計を実装する方法

PHP_PHP チュートリアルで Web サイト上のオンライン人口の統計を実装する方法

WBOY
WBOYオリジナル
2016-07-13 09:53:35802ブラウズ

PHP を使用して Web サイト上のオンラインの人数をカウントする方法

この記事では、PHP を使用して Web サイト上のオンラインの人数をカウントする方法の例について説明します。皆さんの参考に共有してください。具体的な実装方法は以下の通りです

?

この記事が皆様の PHP プログラミング設計に役立つことを願っています。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1000121.html技術記事 PHP を使用して Web サイト上のオンライン人数をカウントする方法 この記事では、PHP を使用して Web サイト上のオンライン人数をカウントする方法について説明します。皆さんの参考に共有してください。具体的な実装方法は以下の通りです: ? 1 2 3 4...

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');

} 他 {

$ip = $_SERVER['REMOE_ADDR'];

}

$ip を返す;

}

関数の書き込み($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);

}

関数 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;

} 他 {

$arr = ファイル($fileCount);

$フラグ = 0;

foreach($arr as $key => $val) {

$val= トリム($val);

if ($val != "") {

list($when, $seti) =explode("t", $val);

if ($seti ==$ip) {

$arr[$key] = $time . "t" .

$フラグ = 1;

} 他 {

$currentTime = time();

if ($currentTime - $when > 900) {

unset($arr[$key]);

}その他{

$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);

設定解除($arr);

}

$count を返す;

}

$time = time();

$ip = getIpAddress();

$online_num = count_online_num($time,$ip);

エコー $online_num;

?>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。