从php目录和子目录中获取所有文件、大小、路径


Fetch all files,size,path from directories and subdirectories php

我想使用一个函数从所有目录和子目录中获取所有文件名、大小和路径。我已经使用递归函数做了同样的操作。这是我的密码。

function scan_dir($path, $exclude){
$ite = new RecursiveDirectoryIterator($path);
$bytestotal=0;
$nbfiles=0;
$file_data = array();
$i= 0;
foreach (new RecursiveIteratorIterator($ite,RecursiveIteratorIterator::CHILD_FIRST) as $filename => $cur) {

if ($cur->isDir())
    {
        continue ;
    }
    $files = str_replace('''','/', $filename);
     $filesize = $cur->getSize();
    $exclude = array_filter($exclude);

     $data = array('name'=>$files, 'path'=>$cur->getPath(),'size'=>$cur->getSize());
     $file_data[] = $data;  
    $i++;
    $nbfiles++;
    $bytestotal += $filesize;       
 }
  $bytestotal = $bytestotal;
  return array( 'total_files'=> $nbfiles, 'total_size' => $bytestotal, 'files'=> $file_data);
}

问题是,当我在linux服务器上运行代码时,由于递归函数,它运行得很慢。请给我一个相同的替代品,这样我就可以得到相同的输出,但使用不同的函数。

我想添加一个if else部分,即检查服务器,如果linux,则{}else{递归函数}非常感谢您的帮助。

使用glob

$folder = dirname( __FILE__ ) ."./images/*";
foreach( glob( './images/*.*' ) as $filename ) {
    echo $filename;
    echo $size = filesize($filename);
}