首页 >后端开发 >php教程 >(最明了)写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。

(最明了)写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。

WBOY
WBOY原创
2016-08-08 09:29:151393浏览
<?php function my_scandir($dir)  
{  
     $files = array();  
     if ( $handle = opendir($dir) ) {  
         while ( ($file = readdir($handle)) !== false ) {  
             if ( $file != ".." && $file != "." ) {  
                 if ( is_dir($dir . "/" . $file) ) {  
                     $files[$file] = my_scandir($dir . "/" . $file);   
                 }else {  
                     $files[] = $file;  
                 }  
             }  
         }  
         closedir($handle);  
         return $files;  
     }  
}

dump(my_scandir("D:\wwwroot"));


function dump($vars){
	$content = "<div align=left><pre class="brush:php;toolbar:false">\n" . htmlspecialchars(print_r($vars, true)) . "\n
\n"; echo "{$content}"; return; }
opendir -- 打开目录句柄
说明
resource opendir ( string path)
返回一个目录句柄,可以在之后用在 closedir(),readdir() 和 rewinddir() 调用中。
如果 path 不是一个合法的目录或者因为权限限制或文件系统错误而不能打开目录,opendir() 返回 FALSE 并产生一个 E_WARNING 级别的 PHP 错误信息。可以在 opendir() 前面加上“@”符号来抑制错误信息的输出。
readdir -- 从目录句柄中读取条目
说明
string readdir ( resource dir_handle)
返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。
请留意下面例子中检查 readdir() 返回值的风格。我们明确地测试返回值是否全等于(值和类型都相同 - 更多信息参见比较运算符)FALSE,否则任何目录项的名称求值为 FALSE 的都会导致循环停止(例如一个目录名为“0”)。
is_dir -- 判断给定文件名是否是一个目录
说明
bool is_dir ( string filename)
如果文件名存在并且为目录则返回 TRUE。如果 filename 是一个相对路径,则按照当前工作目录检查其相对路径。
注: 本函数的结果会被缓存。详细信息参见 clearstatcache()。
注: 本函数不能作用于远程文件,被检查的文件必须通过服务器的文件系统访问。
scandir --  列出指定路径中的文件和目录
说明
array scandir ( string directory [, int sorting_order])
返回一个 array,包含有 directory 中的文件和目录。如果 directory 不是一个目录,则返回布尔值 FALSE,并产生一条 E_WARNING 级别的错误。

默认情况下,返回值是按照字母顺序升序排列的。如果使用了可选参数 sorting_order(设为 1),则按照字母顺序降序排列。

以上就介绍了(最明了)写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn