程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 一個經典的PHP遞歸刪除函數

一個經典的PHP遞歸刪除函數

編輯:PHP綜合

遞歸函數為自調用函數,在函數體內直接或間接自己調用自己,但需要設置自調用的條件,若滿足條件,則調用函數本身,若不滿足則終止本函數的自調用,然後把目前流程的主控權交回給上一層函數來執行。


   接下來看一個經典的遞歸刪除函數

 

   函數的作用:刪除目錄下面的所有文件,並刪除目錄

   函數代碼:

<?php  
function deldir($dirname){  
    if(file_exists($dirname)){//首先判斷目錄是否有效  
        $dir = opendir($dirname);//用opendir打開目錄  
        while($filename = readdir($dir)){//使用readdir循環讀取目錄裡的內容  
         if($filename != "." && $filename != ".."){//排除"."和".."這兩個特殊的目錄  
            $file = $dirname."/".$filename;  
            if(is_dir($file)){//判斷是否是目錄,如果是則調用自身  
                deldir($file); //使用遞歸刪除子目錄    
            }else{  
              @unlink($file);//刪除文件  
            }  
          }  
        }  
            closedir($dir);//關閉文件操作句柄  
            rmdir($dirname);//刪除目錄  
    }  
}  
?>

   使用實例:Public是一個文件夾,裡面有許多文件夾和文件,調用deldir($dirname)把它刪除

<?php  
$dir='Public';//傳入一個文件夾路徑  
deldir($dir);//調用函數  
?>

   說明:首先判斷Public是否存在,如果在則打開Public,然後使用readdir循環讀取Public目錄裡的內容,如果存在"."和".." 這兩個特殊目錄則排除掉。如果遇到文件夾則調用自身處理,直到條件不滿足。遇到文件則直接刪除掉。最後層層跳出刪除Public。

  

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