php在线(php在线编辑器)
很多朋友对于php在线和php在线编辑器不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
php如何实现记录网站在线人数
这个方法是我重网上找的,你可以看看:
主要原理:把每个访客的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();
?>
php怎样统计在线人数
首先,php不能直接统计在线人数,因为php只能获取用户上线的事件,没法获取用户下线的事件。
目前最靠谱的方法是,用户上线时创建一个session数据,并把这个数据保存在数据库或某个文件里,该用户每次操作都更新一次这个数据的时间。在统计人数的时候,把最后一次更新超过某个时间(比如说10分钟)的数据删除掉,剩下有多少个数据,就有多少用户在线。
不过缺点是显而易见的,比如一个用户下线了,他可能之后最多有10分钟会被计算在在线人数里,再比如一个人看一个网页的文章看了10多分钟,他就可能被排除在在线人数之外了。
总之,只能算个大概。
php做用户在线与离线状态
也可以做一张表:登录表,当登陆时,把用户加入到表中,无论是用户退出,或者是session判断用户长时间未操作离线,都将表中用户删除,那么你就可以根据表内残留下来的数据获取到当前在线用户信息.
存在于表内用户即在线,不存在于表内的用户即离线!
OK,关于php在线和php在线编辑器的内容到此结束了,希望对大家有所帮助。