利用文件属性结合Session实现在线人数统计

 1   
 2ob_start();   
 3session_start();   
 4$num=0;   
 5$dirpt = "online";   
 6$reftime = 1;   
 7  
 8if (is_dir($dirpt) && $dir = opendir($dirpt)) {   
 9while (($file = readdir($dir)) !== false) {   
10if(strcmp($file,"..")==0 || strcmp($file,".")==0){   
11continue;   
12}   
13$D_[date("Y-m-d H:i:s",filemtime($dirpt."/".$file))]=$file;   
14$num++;   
15unset($cum);   
16}   
17closedir($dir);   
18$filename = session_id();   
19$fp = fopen($dirpt."/".$filename,"w");   
20fputs($fp,"");   
21fclose($fp);   
22  
23$ntime = date("Y-m-d H:i:s",mktime(date("H"),date("i")-1,0,date("m"),date("d"),date("Y")));   
24$D_[$ntime]="-";   
25krsort($D_);   
26$onlinenumber=0;   
27while(1){   
28$vkey=key($D_);   
29$onlinenumber++;   
30if(strcmp($ntime,$vkey)==0){   
31break;   
32}else{   
33array_shift($D_);   
34}   
35}   
36array_shift($D_);   
37reset($D_);   
38while(count($D_)>0){   
39$ckey=key($D_);   
40unlink($dirpt."/".$D_[$ckey]);   
41if(!next($D_)){   
42break;   
43}   
44}   
45  
46}else{   
47@chmod("..",0777);   
48@mkdir($dirpt,0777);   
49  
50}   
51$online=$onlinenumber-1;   
52$retime=60*$reftime;   
53echo "当前在线

<strong><font color="red">$online</font></strong>

1

<meta content='"{$retime},url="' http-equiv="refresh"/>

1";   
2ob_end_flush();   
Published At
Categories with Web编程
Tagged with
comments powered by Disqus