一个利用php读出目录下的所有目录及子目录下文件的代码,很简单方便的第一个就是读取一级目录,后面可以无限目录读取,实例代码如下:
- <?php
- $dirname=@opendir("abc")or die("打开目录不成功<br>");
-
- readdir($dirname)."<br>";
-
- readdir($dirname)."<br>";
- while(($filess=readdir($dirname))!=false)
-
- {
- if(is_dir("abc/".$filess))
- {
-
- echo "目录:".$filess."<br>";
-
- }
- else
- {
-
- echo "文件:".$filess."<br>";
- }
-
- }
- closedir($dirname);
-
- ?>
只能读出html文件名,读不出abc目录下的目录名,下面我们再看一实例,实例代码如下:
- <?php
-
-
-
-
-
-
- function file_list($dir,$pattern="")
- {
- $arr=array();
- $dir_handle=opendir($dir);
- if($dir_handle)
- {
-
- while(($file=readdir($dir_handle))!==false)
- {
- if($file==='.' || $file==='..')
- {
- continue;
- }
- $tmp=realpath($dir.'/'.$file);
- if(is_dir($tmp))
- {
- $retArr=file_list($tmp,$pattern);
- if(!emptyempty($retArr))
- {
- $arr[]=$retArr;
- }
- }
- else
- {
- if($pattern==="" || preg_match($pattern,$tmp))
- {
- $arr[]=$tmp;
- }
- }
- }
- closedir($dir_handle);
- }
- return $arr;
- }
-
-
- echo '<pre>';
- print_r(file_list($_SERVER['DOCUMENT_ROOT'],"//.php$/i"));
- echo '</pre>';
- ?>
|