Heim > Backend-Entwicklung > PHP-Tutorial > php怎么获取当前在线用户数量

php怎么获取当前在线用户数量

PHPz
Freigeben: 2020-06-28 09:36:56
Original
1878 Leute haben es durchsucht

php怎么获取当前在线用户数量

php怎么获取当前在线用户的数量?

php 获取当前在线用户数量

<?php
//在线人数统计
$filename=&#39;online.txt&#39;;//数据文件
$cookiename=&#39;VGOTCN_OnLineCount&#39;;//cookie名称
$onlinetime=10;//在线有效时间,单位:秒
   
$online=file($filename);
//PHP file() 函数把整个文件读入一个数组中。与 file_get_contents() 类似,不同的是 file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败,则返回 false
$nowtime=$_SERVER[&#39;REQUEST_TIME&#39;];
$nowonline=array();
//得到仍然有效的数据
foreach($online as $line){
  $row=explode(&#39;|&#39;,$line);
  $sesstime=trim($row[1]);
  if(($nowtime - $sesstime)<=$onlinetime){//如果仍在有效时间内,则数据继续保存,否则被放弃不再统计
    $nowonline[$row[0]]=$sesstime;//获取在线列表到数组,会话ID为键名,最后通信时间为键值
  }
}
/*
@创建访问者通信状态
使用cookie通信
COOKIE 将在关闭浏览器时失效,但如果不关闭浏览器,此 COOKIE 将一直有效,直到程序设置的在线时间超时
*/
if(isset($_COOKIE[$cookiename])){//如果有COOKIE即并非初次访问则不添加人数并更新通信时间
  $uid=$_COOKIE[$cookiename];
}else{//如果没有COOKIE即是初次访问
  $vid=0;//初始化访问者ID
  do{//给用户一个新ID
    $vid++;
    $uid=&#39;U&#39;.$vid;
  }while(array_key_exists($uid,$nowonline));
  setcookie($cookiename,$uid);
}
$nowonline[$uid]=$nowtime;//更新现在的时间状态
//统计现在在线人数
$total_online=count($nowonline);
//写入数据
if($fp=@fopen($filename,&#39;w&#39;)){
  if(flock($fp,LOCK_EX)){
    rewind($fp);
    foreach($nowonline as $fuid=>$ftime){
      $fline=$fuid.&#39;|&#39;.$ftime."\n";
      @fputs($fp,$fline);
    }
    flock($fp,LOCK_UN);
    fclose($fp);
  }
}
echo &#39;<script>console.log("&#39;.$total_online.&#39;");</script>&#39;;
Nach dem Login kopieren

更多相关技术文章,请访问PHP中文网

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage