PHP遍历目录下的全部文件
一、使用dir()函数:
1 <?php 2 /** 3 * 遍历指定文件夹下文件 4 * 5 * @param string $directory 文件夹 6 * @return string|array 7 */ 8 function dirTree($directory) { 9 $dir = dir($directory); 10 static $arr = []; 11 while ($file = $dir->read()) { 12 if ((is_dir("$directory/$file")) && ($file != '.') && ($file != '..')) { 13 dirTree("$directory/$file"); 14 } else { 15 if ($file != '.' && $file != '..') { 16 $arr[] = $file; 17 } 18 } 19 } 20 return $arr; 21 } 22 $directory = "C:/Users/Yun/Downloads/AclExtras"; 23 print_r(dirTree($directory));
二、使用readdir()函数:
1 <?php 2 /** 3 * 遍历指定文件夹下文件 4 * 5 * @param string $directory 文件夹 6 * @return string|array 7 */ 8 function readdirTree($directory) { 9 static $arr = []; 10 if ($handle = opendir($directory)) { 11 while (($file = readdir($handle)) !== false) { 12 if ((is_dir($directory . '/' . $file)) && $file != '.' && $file != '..') { 13 readdirTree("$directory/$file"); 14 } else { 15 if ($file != '.' && $file != '..') { 16 $arr[] = $file; 17 } 18 } 19 } 20 closedir($handle); 21 } 22 return $arr; 23 } 24 $directory = "C:/Users/Yun/Downloads/AclExtras"; 25 print_r(readdirTree($directory));
三、使用scandir()函数:
1 <?php 2 /** 3 * 遍历指定文件夹下文件 4 * 5 * @param string $directory 文件夹 6 * @return string|array 7 */ 8 function scandirTree($directory) { 9 static $arr = []; 10 $dir = scandir($directory); 11 foreach ($dir as $file) { 12 if ((is_dir($directory . '/' . $file)) && $file != '.' && $file != '..') { 13 scandirTree($directory . '/' . $file); 14 } else { 15 if ($file != '.' && $file != '..') { 16 $arr[] = $file; 17 } 18 } 19 } 20 return $arr; 21 } 22 $directory = "C:/Users/Yun/Downloads/AclExtras"; 23 print_r(scandirTree($directory));
四:使用RecursiveIteratorIterator()类:
1 <?php 2 /** 3 * 遍历指定文件夹下文件 4 * 5 * @param string $directory 文件夹 6 * @return array 7 */ 8 function recursiveIteratorTree($directory) { 9 static $arr = []; 10 $objects = new RecursiveIteratorIterator( 11 new RecursiveDirectoryIterator($directory, RecursiveDirectoryIterator::SKIP_DOTS), 12 RecursiveIteratorIterator::LEAVES_ONLY 13 ); 14 foreach ($objects as $object) { 15 $filename = $object->getFilename(); 16 $arr[] = $filename; 17 } 18 return $arr; 19 } 20 21 $directory = "C:/Users/Yun/Downloads/AclExtras"; 22 print_r(recursiveIteratorTree($directory));
五: