社区版本可以用
function myscandir($dir)
{
$files = array();
if ( $handle = opendir($dir) ) {
while ( ($file = readdir($handle)) !== false ) {
if ( $file != ".." && $file != "." ) {
if ( isdir($dir . "/" . $file) ) {
$files[$file] = scandir($dir . "/" . $file);
}else {
$files[] = $file;
}
}
}
closedir($handle);
return $files;
}
}
更好的简洁方法
function traverseDirectory($directory) {
     $files = scandir($directory);
     
     foreach ($files as $file) {
         $path = $directory . '/' . $file;
         
         if (is_dir($path)) {
             // 如果是文件夹,则递归调用该函数
             traverseDirectory($path);
         } else {
             // 如果是文件,则打印文件路径
             echo $path . "\n";
         }
     }
 }