Comment PHP compte-t-il le nombre de personnes en ligne sur le site ? Cet article présente principalement la méthode de comptage du nombre de personnes en ligne sur un site Web en PHP. Il implémente la fonction de comptage du nombre de personnes en ligne en obtenant les paramètres réseau côté serveur et en lisant et en écrivant des fichiers texte. J'espère que cela aide tout le monde.
La méthode spécifique de mise en œuvre est la suivante :
<?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 . "\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; ?>
Recommandations associées :
PHP résout le blocage des fichiers de session
Utilisez PHP pour traiter des ressources d'image inexistantes
Polymorphisme PHP et liaison dynamique
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!