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

时间:2008-5-31    作者:Deri    分类: 分享


   <code><?php<br />ob_start();<br />session_start();<br />$num=0;<br />$dirpt  =  "online";<br />$reftime  =  1;<br />if (is_dir($dirpt) && $dir = opendir($dirpt)) {<br /> while (($file = readdir($dir)) !== false) {<br />  if(strcmp($file,"..")==0 || strcmp($file,".")==0){<br />    continue;<br />  }<br />  $D_[date("Y-m-d H:i:s",filemtime($dirpt."/".$file))]=$file;<br />  $num++;<br />  unset($cum);<br /> }&#160;<br /> closedir($dir);<br /> $filename  =  session_id();<br /> $fp    =  fopen($dirpt."/".$filename,"w");<br /> fputs($fp,"");<br /> fclose($fp);<br /> $ntime  =  date("Y-m-d H:i:s",mktime(date("H"),date("i")-1,0,date("m"),date("d"),date("Y")));<br /> $D_[$ntime]="-";<br /> krsort($D_);<br /> $onlinenumber=0;<br /> while(1){<br />  $vkey=key($D_);<br />  $onlinenumber++;<br />  if(strcmp($ntime,$vkey)==0){<br />    break;<br />  }else{<br />    array_shift($D_);<br />  }<br /> }<br /> array_shift($D_);<br /> reset($D_);<br /> while(count($D_)>0){<br />  $ckey=key($D_);<br />  unlink($dirpt."/".$D_[$ckey]);<br />  if(!next($D_)){<br />    break;<br />  }<br /> }<br />}else{<br />  @chmod("..",0777);<br />  @mkdir($dirpt,0777);<br /> &#160;<br />}<br />$online=$onlinenumber-1;<br />$retime=60*$reftime;<br />echo "当前在线<strong><font color=red>$online</font></strong>人<meta http-equiv=refresh content=\"{$retime},url=\">";<br />ob_end_flush();<br />?><br /><!--<br /> &#160;《利用文件属性结合Session进行在线人数统计》<br />  作者:sports98<br />编写日期: 2003-3-19<br />--></code>