程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php實例分享之通過遞歸實現刪除目錄下的所有文件詳解

php實例分享之通過遞歸實現刪除目錄下的所有文件詳解

編輯:PHP綜合

先貼代碼:

復制代碼 代碼如下:
<?php
function delFile($dirName){ 
 if ($handle = opendir("$dirName")){
  while (($item = readdir($handle))!=false){
   if ($item!="." && $item!="..")  {
    if ( is_dir( "$dirName/$item" ) ) { 
             delFile( "$dirName/$item" ); 
       } else unlink("$dirName/$item");
  }
 }
 closedir($handle);
}
?>


<?php
 delFile('/home/sources');
?>

先講解幾個函數:

opendir() :函數打開一個目錄句柄,可由 closedir(),readdir() 和 rewinddir() 使用。

若成功,則該函數返回一個目錄流,否則返回 false 以及一個 error。可以通過在函數名前加上 "@" 來隱藏 error 的輸出。例如$dir=@ opendir("image");

readdir():返回由opendir函數打開的目錄句柄中的條目,即順序返回文件夾中的文件名,順序按照文件系統中制定的排序方式。

id_dir():即檢測參數文件是否為目錄,如果是返回true.

un_link():即刪除制定文件。

所以程序執行思路為:函數調用主目錄,然後順序檢測每一文件是否為目錄,如果為目錄則遞歸調用函數,並對不為目錄的文件進行刪除,直到遍歷完所有的文件。

這個程序只實現刪除文件夾裡面的內容,而沒有刪除文件夾本身,如果要實現這一目的,加上下面代碼即可:

復制代碼 代碼如下:
rmdir($dirName);

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