1、如果文件名设得有规律,则它们在文件夹下会自然排序,则删除第一个则可;
2、如文件名设得无规律,则:
$file_arr=@glob("dir/*.txt");
foreach($file_arr as $each_file){
  $time_arr[]=filemtime($each_file);
}
array_multisort($time_arr,SORT_ASC,SORT_NUMERIC,$file_arr);  //按升序排序@unlink($file_arr[0]);
$next_dat_file=preg_replace("/\.txt$/i",".dat",$file_arr[0]);
@unlink($next_dat_file);草写一个,未测有误否,参考一下

解决方案 »

  1.   

    说明:这两个文件的命名都是有规律的
    除了后缀不同,名字的格式是:deleteBackupYYYYMMDDHHIISS,其中的YYYYMMDDHHIISS是文件创建的时间。
    下面是我写的代码,测试通过,呵呵
    不过还是谢谢你们的参与,当时我还真的迷茫了
    给人帮忙,不管代码是否优秀,能完成任务就交差了,呵呵
    谢谢你们的指教$i = 0;
    $deldatname = "deleteBackup99999999999999.dat";
    $deltxtname = "";
    $deldir = opendir($filename);
    while ($f = readdir($deldir))
    {
        if (($f != ".") && ($f != "..") && ereg('^deleteBackup[0-9]+.dat$',$f))
        {
            $i++;
        }
    }
    if ($i == "99")
    {
        $deldir = opendir($filename);
        while ($f = readdir($deldir))
        {
             if (($f != ".") && ($f != "..") && ereg('^deleteBackup[0-9]+.dat$',$f))
             {
                 //对文字列进行比较
                 if(strnatcmp($f, $deldatname) < 1)
                 {
                     $deldatname = $f;
                     $deltxtname = substr_replace($f, "txt", 27);
                  }
              }
         }
    //删除选中的文件
    @unlink($filename.$deldatname);
    @unlink($filename.$deltxtname);
      

  2.   

    上面的代码不好的地方就是两次进行了readdir操作,我看着都难受
    我会尝试best_inh(一无所)兄的方法,争取更好
    另外谢谢wildlily980(小李)兄的鼓励,刚做php几天而已,以后还得多指教
      

  3.   

    工作是进行update
    最郁闷的就是这个php系统是用的php4版本,新版的方法基本都是报错
    所以都是小心翼翼
    呵呵,结贴
    不麻烦大家了