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

PHP中刪除目錄的三種方法

編輯:PHP入門知識

     PHP本身有一個rmdir()函數可以用來刪除目錄,不過要求必須是空目錄,本文列舉了三種方法。1、遞規法;2、系統調用法;3、循環法 。

      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