使用PHP函数遍历文件的目录树的函数

  •   
  • 5246
  • PHP
  • 2
  • super_dodo
  • 2014/01/16

当需要对服务器上面的指定的目录进行遍历显示的时候,需要使用PHP的目录函数.当得到相关的数据的时候,可以相应的组装使用目录树zTree进行展示.此处仅为ul列表展示.

echo getcwd() . "<hr>";		//得到当前的目录
//chdir('../demo');			//切换目录
//echo getcwd() . "<hr>";		//得到切换后的目录

一个简单的目录递归函数 第一种实现办法:用dir返回对象

function tree($directory) { 
	$mydir = dir($directory); 
	echo "<ul>"; 
	while($file = $mydir->read()){ 
		if((is_dir("$directory/$file")) AND ($file !== ".") AND ($file !== "..")){
			echo "<li><font color='#ff00cc'><b>$file</b></font></li>"; 
			tree("$directory/$file"); 
		}else{
			if($file !== "." AND $file !== ".."){
				echo "<li>".$file."--".filesize("$directory/$file")."</li>";
			}			
		}
	} 
	echo "</ul>"; 
	$mydir->close(); 
}
echo "<h3>目录为粉红色</h3>"; 
tree("../demo");

第二种实现办法:用readdir()函数

function listDir($dir){
	if(is_dir($dir)){
		if ($dh = opendir($dir)){
			while (($file = readdir($dh)) !== false){
				echo "<ul>"; 
				if((is_dir($dir."/".$file)) && $file!="." && $file!=".."){
					echo "<li><font color='red'>文件名:".$file."</font></li>";
					listDir($dir."/".$file."/");
				}else{
					if($file!="." && $file!=".."){
						echo "<li>".$file."</li>";
					}
				}
				echo "</ul>"; 
			}
			closedir($dh);
		}
	}
}
//开始运行
echo "<h3>目录为红色</h3>";
listDir("../demo");
exit();

海纳百川,有容乃大。壁立千仞,无欲则刚。