PHP 实现的简单在线人数统计功能
//在线人数
function online_users() {
$filename='online.txt';
$CookieName='OnLinePerson';
$onlineTime=30;
$online=file($filename);
$nowtime=$_SERVER['REQUEST_TIME'];
$nowonline=array();
foreach($online as $line){
$row=explode('|',$line);
$sesstime=trim($row[1]);
if(($nowtime - $sesstime)<=$onlineTime){
$nowonline[$row[0]]=$sesstime;
}
}
if(isset($_COOKIE[$CookieName])){
$uid=$_COOKIE[$CookieName];
}else{
$vid=0;
do{
$vid++;
$uid='U'.$vid;
}while(array_key_exists($uid,$nowonline));
setcookie($CookieName,$uid);
}
$nowonline[$uid]=$nowtime;
$total_online=count($nowonline);
if($fp=@fopen($filename,'w')){
if(flock($fp,LOCK_EX)){
rewind($fp);
foreach($nowonline as $fuid=>$ftime){
$fline=$fuid.'|'.$ftime."\n";
@fputs($fp,$fline);
}
flock($fp,LOCK_UN);
fclose($fp);
}
}
echo "$total_online";
}
这里解释下一些变量吧:
filename 数据文件的名字CookieName Cookie 名称,这里使用 Cookie 进行记录,当然你也可以用本地储存
我使用的是 Typecho 主题,所以我将会把上面的代码放入 functions.php 内
当然你是其他程序的也可以用的,具体怎么放就要看实际情况了
<?php echo online_users() ?>
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有