程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 探討PHP刪除文件夾的三種方法

探討PHP刪除文件夾的三種方法

編輯:PHP綜合
1、遞歸法
復制代碼 代碼如下:
deleteDir($dir)
{
if (rmdir($dir)==false && is_dir($dir)) {
    if ($dp = opendir($dir)) {
     while (($file=readdir($dp)) != false) {
      if (is_dir($file) && $file!='.' && $file!='..') {
       deleteDir($file);
      } else {
       unlink($file);
      }
     }
     closedir($dp);
    } else {
     exit('Not permission');
    }
}
}

2、系統調用法
復制代碼 代碼如下:
function del_dir($dir)
{
if(strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
       $str = "rmdir /s/q " . $dir;
} else {
       $str = "rm -Rf " . $dir;
}
}

3、循環法
復制代碼 代碼如下:
function deltree($pathdir)
{
echo $pathdir;//我調試時用的
if(is_empty_dir($pathdir))//如果是空的
      {
      rmdir($pathdir);//直接刪除
      }
      else
      {//否則讀這個目錄,除了.和..外
          $d=dir($pathdir);
          while($a=$d->read())
          {
          if(is_file($pathdir.'/'.$a) && ($a!='.') && ($a!='..')){unlink($pathdir.'/'.$a);}
          //如果是文件就直接刪除
          if(is_dir($pathdir.'/'.$a) && ($a!='.') && ($a!='..'))
          {//如果是目錄
              if(!is_empty_dir($pathdir.'/'.$a))//是否為空
              {//如果不是,調用自身,不過是原來的路徑+他下級的目錄名
              deltree($pathdir.'/'.$a);
              }
              if(is_empty_dir($pathdir.'/'.$a))
              {//如果是空就直接刪除
              rmdir($pathdir.'/'.$a);
              }
          }
          }
          $d->close();         
      echo "必須先刪除目錄下的所有文件";//我調試時用的
      }
}
function is_empty_dir($pathdir)
{
//判斷目錄是否為空,我的方法不是很好吧?只是看除了.和..之外有其他東西不是為空
$d=opendir($pathdir);
$i=0;
      while($a=readdir($d))
      {
      $i++;
      }
closedir($d);
if($i>2){return false;}
else return true;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved