简单的PHP 在线人数统计<br />
class HanroadClass <br />
{ <br />
/**//********************************** <br />
功 能:统计在线人数,可以分别统计每一页在线人数 <br />
参 数:$page,需要统计的页面(函数必须在该页面执行) <br />
$time_slot:时间间隔(单位:秒) <br />
返回值:混合数组,其中会员名称部分为二维数组 <br />
***********************************/ <br />
//-------------------- <br />
#数据表:hr_online <br />
#hr_ip varchar(15):IP地址 <br />
#hr_page varchar(20):页面名称 <br />
#hr_time int(10) :登陆时间 <br />
#hr_user varchar(20):用户名 <br />
//-------------------- <br />
function HrOnline($page,$time_slot,$hr_user) <br />
{ <br />
//当前时间和IP地址和用户 <br />
$cur_time = time(); <br />
$cur_ip = $_SERVER['REMOTE_ADDR']; <br />
$hr_user==""?$hr_user="guest":$hr_user=$hr_user; <br />
//删除数据表中过期的信息和相同IP地址的数据 <br />
$sql = "delete from hr_online where $cur_time-hr_time>$time_slot "; <br />
$sql.= "or hr_ip='".$cur_ip."'"; <br />
mysql_query($sql); <br />
//插入新数据 <br />
$sql = "insert into hr_online(hr_ip,hr_page,hr_time,hr_user)values("; <br />
$sql.= "'".$cur_ip."','".$page."','".$cur_time."','".$hr_user."')"; <br />
mysql_query($sql); <br />
<br />
//读出在线总人数和他们的用户名 <br />
$sql = "select * from hr_online where hr_page='".$page."'"; <br />
$query = mysql_query($sql); <br />
$total = mysql_num_rows($query); <br />
while($hobj=mysql_fetch_object($query)) <br />
{ <br />
static $sI = 0; <br />
$user_info[$sI] = $hobj->hr_user; <br />
$sI++; <br />
} <br />
//读出访客数量 <br />
$sql = "select * from hr_online where hr_page='".$page."' and hr_user='guest'"; <br />
$guest = mysql_num_rows(mysql_query($sql)); <br />
return array($total,$guest,$user_info); <br />
} <br />
}