程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP下用rmdir實現刪除目錄的三種方法小結

PHP下用rmdir實現刪除目錄的三種方法小結

編輯:關於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