其实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 ?>