首頁  >  文章  >  後端開發  >  (最明了)寫一個函數,能夠遍歷一個資料夾下的所有檔案和子資料夾。

(最明了)寫一個函數,能夠遍歷一個資料夾下的所有檔案和子資料夾。

WBOY
WBOY原創
2016-08-08 09:29:151368瀏覽
<?php

function my_scandir($dir)  
{  
     $files = array();  
     if ( $handle = opendir($dir) ) {  
         while ( ($file = readdir($handle)) !== false ) {  
             if ( $file != ".." && $file != "." ) {  
                 if ( is_dir($dir . "/" . $file) ) {  
                     $files[$file] = my_scandir($dir . "/" . $file);   
                 }else {  
                     $files[] = $file;  
                 }  
             }  
         }  
         closedir($handle);  
         return $files;  
     }  
}

dump(my_scandir("D:\wwwroot"));


function dump($vars){
	$content = "<div align=left><pre class="brush:php;toolbar:false">\n" . htmlspecialchars(print_r($vars, true)) . "\n
\n"; echo "{$content}"; return; }
opendir -- 開啟目錄句柄
說明
resource opendir ( string path)
回傳一個目錄句柄,可以在之後用在 closedir(),readdir() 和 rewinddir() 呼叫中。
如果 path 不是一個合法的目錄或因為權限限製或檔案系統錯誤而不能開啟目錄,opendir() 傳回 FALSE 並產生一個 E_WARNING 層級的 PHP 錯誤訊息。可以在 opendir() 前面加上「@」符號來抑制錯誤訊息的輸出。
readdir -- 從目錄句柄中讀取條目
說明
string readdir ( resource dir_handle)
返回目錄中下一個檔案的檔案名稱。檔案名稱以在檔案系統中的排序傳回。
請留意下面範例中檢查 readdir() 傳回值的風格。我們明確地測試返回值是否全等於(值和類型都相同- 更多資訊請參閱比較運算子)FALSE,否則任何目錄項目的名稱求值為FALSE 的都會導致循環停止(例如一個目錄名為“0” )。
is_dir -- 判斷給定檔案名稱是否為目錄
說明
bool is_dir ( string filename)
如果檔案名稱存在並且為目錄則傳回 TRUE。如果 filename 是一個相對路徑,則按照目前工作目錄檢查其相對路徑。
註: 本函數的結果會被快取。詳細資訊請參閱 clearstatcache()。
註: 本函數不能作用於遠端文件,被檢查的文件必須透過伺服器的文件系統存取。
scandir --  列出指定路徑中的檔案和目錄
說明
array scandir ( string directory [, int sorting_order])
傳回一個 array,包含有 directory 中的檔案和目錄。如果 directory 不是目錄,則傳回布林值 FALSE,並產生一條 E_WARNING 等級的錯誤。

預設情況下,回傳值是按照字母順序升序排列的。如果使用了可選參數 sorting_order(設為 1),則按照字母順序降序排列。

以上就介紹了(最明了)寫一個函數,能夠遍歷一個資料夾下的所有檔案和子資料夾。 ,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:流程控制 - PHP手冊筆記下一篇:流程控制 - PHP手冊筆記

相關文章

看更多