![](/img/trans.png)
[英]PHP Recursive function: Get all files and directories within a directory and its sub-directories
[英]PHP recursive function for printing files and directories is not working
我正在嘗試制作遞歸PHP函數,該函數將遍歷目錄樹和子目錄樹並將所有目錄和文件放入一個數組中。
我的代碼對我來說看起來很合邏輯,但無法正常工作。
目錄和文件樹:
PHP代碼
<?php
function printFiles($directory) {
$files = array();
foreach (scandir($directory) as $file) {
if ($file === '.' || $file === '..')
continue;
// checking is it file or directory
if (is_dir($directory . '\\'. $file)) {
return printFiles($directory . '\\'. $file);
}
array_push($files, $file);
}
return($files);
}
$directory = 'C:\Users\Jakov\Desktop\DIRECTORIES';
print_r(printFiles($directory));
?>
我得到這個結果:
Array ( )
您只會得到函數遇到的第一個最深的文件夾A_1_1
包含的文件,該文件夾中沒有文件。
找到目錄時不返回。 改為添加到當前列表:
// checking is it file or directory
if (is_dir($directory . '/'. $file)) {
$files = array_merge($files, printFiles($directory . '/'. $file));
} else {
array_push($files, $file);
}
另外,將/
用作路徑。 它可以在Windows中使用,並且可以避免轉義錯誤:
$directory = 'C:/Users/Jakov/Desktop/DIRECTORIES';
(在代碼中,應使用\\\\
而不是\\
作為分隔符。)
您還應該檢查鏈接 -並忽略它們-否則您可能會陷入無限循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.