ZH奶酪:PHP遍历目录/文件的3种方法

其实PHP中内建函数scandir()就可以返回目录下全部文件和目录了。。。

==========================

1、使用$obj = dir($dir)返回目录对象$obj,然后使用其$obj->read()方法遍历;

 1 <?php
 2 /**
 3  * Created by PhpStorm.
 4  * User: Zhang He
 5  * Date: 2015/6/8
 6  * Time: 12:21
 7  */
 8 function traverseDir( $filedir ) {
 9     //打开目录
10     $dir = @dir($filedir);
11     //列出目录中的文件
12     while (($file = $dir->read())!==false){
13         if(is_dir($filedir."/".$file) AND ($file!=".") AND ($file!="..")){
14             //递归遍历子目录
15             traverseDir($filedir."/".$file);
16         } else {
17             //输出文件完整路径
18             echo "filename: " .$filedir."/".$file . "<br />";
19         }
20     }
21     $dir->close();
22 }
23 //测试:遍历当前目录
24 traverseDir(".");
25 ?>

2、先使用$obj = opendir($dir)获取对象$obj,再使用readdir($obj)遍历目录

 1 <?php
 2 /**
 3  * Created by PhpStorm.
 4  * User: Zhang He
 5  * Date: 2015/6/8
 6  * Time: 12:21
 7  */
 8 function traverseDir($dir){
 9     if(is_dir($dir)){
10         if ($obj = opendir($dir)){
11             while (($file = readdir($obj)) !== false){
12                 if((is_dir($dir."/".$file)) and $file!="." and $file!=".."){
13                     echo "<b><font color='red'>文件名:</font></b>",$file,"<br><hr>";
14                     traverseDir($dir."/".$file."/");
15                 }else{
16                     if($file!="." and $file!=".."){
17                         echo $file."<br>";
18                     }
19                 }
20             }
21             closedir($obj);
22         }
23     }
24 }
25 //测试:遍历当前目录
26 traverseDir(".");
27 ?>
原文地址:https://www.cnblogs.com/CheeseZH/p/4560602.html