2009-11-30 173 views

回答

11

glob是很容易的:

<?php 
foreach (glob("*.txt") as $filename) { 
    echo "$filename size " . filesize($filename) . "\n"; 
} 
?> 

有用於在readdir page遞歸下降了幾點建議。

6

看看PHP的SPL DirectoryIterator

+0

+1非常好!我忽略了SPL。不過,OP應該先熟悉一些基本的東西。 – 2009-11-30 14:13:10

+0

如果學習PHP,SPL是一個開始的好地方,因爲在那裏贏得的勝利遠遠超過PHP的傳統,不一致的函數庫。 – 2009-11-30 14:52:43

0

使用readdir可以獲得文件列表,如果它匹配您所需的文件名模式,則可以使用fnmatch。在函數內部完成所有這些操作,並在查找目錄時調用您的函數。如果你遇到了這個問題,可以問另一個問題(或者如果你真的不知道從哪裏開始的話,可以發表評論)。

0

glob會讓你得到給定目錄中的所有文件,但不是子目錄。如果你需要太,你將需要:10獲得遞歸,20轉到10

下面是一個僞僞代碼:

function getFiles($pattern, $dir) { 
    $files = glob($dir . $pattern); 
    $folders = glob($dir, GLOB_ONLYDIR); 
    foreach ($folders as $folder) { 
     $files = $files + getFiles($folder); 
    } 
    return $files; 
} 

以上顯然需要進行調整,以得到它的工作,但希望你能明白這一點(記住不要跟隨「..」或「。」的目錄鏈接,否則你將進入無限循環城鎮)。

相關問題