我的世界 网页怎么调用在线人数
答案:1 悬赏:20 手机版
解决时间 2021-02-27 20:59
- 提问者网友:感性作祟
- 2021-02-27 16:04
如题。求详解,。
最佳答案
- 五星知识达人网友:往事埋风中
- 2021-02-27 17:15
这个方法是我重网上找的,你可以看看:
主要原理:把每个访客的session ID 作为文件名,生成一个空白文件在指定的文件夹。如果检查到这份文件的生成时间已经超过了指定的时间,即删除。那么,统计文件的数量可以得到在线人数。
如果的代码放在一份独立的文件,网站所有页面的都引用这份代码。即访客每浏览一次页面都会调用一次此代码。
<?php
ob_start();
session_start();
$num=0;
$dirpt = "online"; // 必须先建立一个online文件夹,存在下面要生成的文件
$reftime = 1;
if (is_dir($dirpt) && $dir = opendir($dirpt)) {
while (($file = readdir($dir)) !== false) {
if(strcmp($file,"..")==0 || strcmp($file,".")==0){
continue;
}
$D_[date("Y-m-d H:i:s",filemtime($dirpt."/".$file))]=$file;
$num++;
unset($cum);
}
closedir($dir);
$filename = session_id();
$fp = fopen($dirpt."/".$filename,"w");
fputs($fp,"");
fclose($fp);
$ntime = date("Y-m-d H:i:s",mktime(date("H"),date("i")-1,0,date("m"),date("d"),date("Y")));
$D_[$ntime]="-";
krsort($D_);
$onlinenumber=0;
while(1){
$vkey=key($D_);
$onlinenumber++;
if(strcmp($ntime,$vkey)==0){
break;
}else{
array_shift($D_);
}
}
array_shift($D_);
reset($D_);
while(count($D_)>0){
$ckey=key($D_);
unlink($dirpt."/".$D_[$ckey]);
if(!next($D_)){
break;
}
}
}else{
@chmod("..",0777);
@mkdir($dirpt,0777);
}
$online=$onlinenumber-1;
$retime=60*$reftime;
echo "当前在线".$online."人,";
echo $retime;
ob_end_flush();
?>
主要原理:把每个访客的session ID 作为文件名,生成一个空白文件在指定的文件夹。如果检查到这份文件的生成时间已经超过了指定的时间,即删除。那么,统计文件的数量可以得到在线人数。
如果的代码放在一份独立的文件,网站所有页面的都引用这份代码。即访客每浏览一次页面都会调用一次此代码。
<?php
ob_start();
session_start();
$num=0;
$dirpt = "online"; // 必须先建立一个online文件夹,存在下面要生成的文件
$reftime = 1;
if (is_dir($dirpt) && $dir = opendir($dirpt)) {
while (($file = readdir($dir)) !== false) {
if(strcmp($file,"..")==0 || strcmp($file,".")==0){
continue;
}
$D_[date("Y-m-d H:i:s",filemtime($dirpt."/".$file))]=$file;
$num++;
unset($cum);
}
closedir($dir);
$filename = session_id();
$fp = fopen($dirpt."/".$filename,"w");
fputs($fp,"");
fclose($fp);
$ntime = date("Y-m-d H:i:s",mktime(date("H"),date("i")-1,0,date("m"),date("d"),date("Y")));
$D_[$ntime]="-";
krsort($D_);
$onlinenumber=0;
while(1){
$vkey=key($D_);
$onlinenumber++;
if(strcmp($ntime,$vkey)==0){
break;
}else{
array_shift($D_);
}
}
array_shift($D_);
reset($D_);
while(count($D_)>0){
$ckey=key($D_);
unlink($dirpt."/".$D_[$ckey]);
if(!next($D_)){
break;
}
}
}else{
@chmod("..",0777);
@mkdir($dirpt,0777);
}
$online=$onlinenumber-1;
$retime=60*$reftime;
echo "当前在线".$online."人,";
echo $retime;
ob_end_flush();
?>
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯