function gc($db){
  global $documentroot;
  $qry="select sesskey from sessions where expiry<".time();
  $rlt=mysql_query($qry,$db);
  if (!$rlt) die("$qry<br>error") ;
  while($myrow=mysql_fetch_array($rlt))
  {
        $sessid=$myrow["sesskey"];
        $qry="delete from book_sess where sess_id='$sessid'";
        $qid=mysql_query($qry,$db);
        if (!qid ) error_die("删除<br>logout()");
        $qry="delete from sessions where sesskey='$sessid'";
        $qid=mysql_query($qry,$db);
        if (!qid ) error_die("删除<br>logout()");        $filedel = "rm -f ".$documentroot."/tmp/".$sessid."*.*";
        exec($filedel);
  $filedel = "rm -f /sstmp/".$sessid."*.*";
        exec($filedel);    }
}
上面程序中
 $filedel = "rm -f ".$documentroot."/tmp/".$sessid."*.*";
        exec($filedel);
  $filedel = "rm -f /sstmp/".$sessid."*.*";
        exec($filedel);
这几行具体意思,不要可以不,有这几行程序执行好慢呀。请高手指点

解决方案 »

  1.   


    $filedel = "rm -f ".$documentroot."/tmp/".$sessid."*.*";//删除linux下指定的目录
            exec($filedel);
      $filedel = "rm -f /sstmp/".$sessid."*.*";//删除linux下指定的目录
            exec($filedel); 感觉你这个函数是用来删除保存的session的,这段删除不删除看你需求
      

  2.   

    上面应该是:
    删除linux下指定的目录下的文件
      

  3.   

    这个函数就这几行干了正经事,前面得到数据库里的session id记录,然后根据每条session id删除服务器上对应的session文件,从而实现清空session记录的功能,你把那几行去掉,就实现不了人工gc的功能了,全靠服务器自己gc