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));

 

五:

posted @ 2015-08-20 08:48  iYunBlog  阅读(257)  评论(0编辑  收藏  举报