This article is an example of how to achieve the number of online statistics website in PHP. Share to everyone for your reference. The implementation methods are 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 The |
<?php 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 && di E ("File open 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;//15 minutes does not refresh the page on 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 help you with your PHP programming.