我寫下了這個簡單的函數,在一個數組上存在目錄和子目錄中的所有文件,但它不起作用。當我回應$f
什麼都沒有顯示。 我哪裏錯了?遞歸地使用函數來列出目錄和子目錄中的所有文件
define('ROOT_DIR', __DIR__);
function scanSubDir($w_dir){
$dir = scandir($w_dir);
foreach($dir as $f){
if($f != '..' || $f != '.'){
if(is_file($w_dir.$f)){
$list[] = $f;
}elseif(is_dir($w_dir.$f)){
scanSubDir($w_dir.$f);
}
}
}
return $list;
}
$file = scanSubDir(ROOT_DIR.'/test/');
foreach($file as $f){
echo $f;
}
因爲'$ dir'是SCANDIR結果數組您不能追加'$ dir'和'$ F'。 – mario
其中之一,你在你的函數中硬編碼目錄('$ dir = scandir(ROOT_DIR。'/ test /');') - 所以它只會掃描那個目錄。另一方面,當您進行遞歸調用時,實際上並沒有向$ list添加任何內容。 – andrewsi
可能重複的[PHP - 遞歸搜索目錄中的所有文件夾路徑](http://stackoverflow.com/questions/7938680/php-recursively-search-within-a-directory-for-all-folder-paths) – mario