统计在线人数
统计在线人数
统计在线人数
<?php
function getip() {
if (getenv ( "http_client_ip" ) && strcasecmp ( getenv ( "http_client_ip" ), "unknown" ))
$ip = getenv ( "http_client_ip" );
else if (getenv ( "http_x_forwarded_for" ) && strcasecmp ( getenv ( "http_x_forwared_for" ), "unknown" ))
$ip = getenv ( "http_x_forwarded_for" );
else if (getenv ( "remote_addr" ) && strcasecmp ( getenv ( "remote_addr" ), "unknown" ))
$ip = getenv ( "remote_addr" );
else if (isset ( $_SERVER ["REMOTE_ADDR"] ) && $_SERVER ["REMOTE_ADDR"] && strcasecmp ( $_SERVER ["REMOTE_ADDR"], "unknown" ))
$ip = $_SERVER ["REMOTE_ADDR"];
else
$ip = "unknown";
return ($ip);
}
$user_online = 'count.txt';
touch ( $user_online );
$timeout = 30;
$user_arr = file_get_contents ( $user_online );
$user_arr = explode ( '#', rtrim ( $user_arr, '#' ) );
$temp = array ();
foreach ( $user_arr as $value ) {
$user = explode ( ",", trim ( $value ) );
if (($user [0] != getip ()) && ($user [1] > time ())) {
array_push ( $temp, $user [0] . "," . $user [1] );
}
}
array_push ( $temp, getip () . "," . (time () + ($timeout)) . '#' );
$user_arr = implode ( "#", $temp );
$fp = fopen ( $user_online, "w" );
flock ( $fp, LOCK_EX );
fputs ( $fp, $user_arr );
flock ( $fp, LOCK_UN );
fclose ( $fp );
echo "当前有" . count ( $temp ) . "人在线";
?>
- 上一篇:30秒内对页面的访问次数【COOKIE】
- 下一篇:确定数组维度
精彩图集
精彩文章






