持续更新——文件管理系统(查看当前所有目录)

先来一张效果图:


其实就是查看当前的文件目录:

了解这个之前我们先来了解一下什么是递归

递归:函数自己调用自己的一种编程方法,类似于循环,所以递归函数中必须要有终止条件,否则就成了死循环

来个例子:

/*
                什么是递归?举个例子:
			求4的阶乘
			1! = 1 
			2! = 2*1	2*1!
			3! = 3*2*1	  3*2!
			4! = 4*3*2*1	4*3!
	*/		
			function factorial($n = 1){
				if($n<=1){
					return 1;
				}
				$num = $n*(factorial($n-1)); //调用它本身 在进行运算
				return $num;
			}
			echo factorial(4);  // 输出结果是24

了解了递归那就很容易理解下面的这个实例:

echo "当前目录结构如下:"."<br />"."(红色代表目录文件)"."<br />";
	function forFile($file = './'){
		if(is_dir($file)){          //判断
			$fp = opendir($file);	//打开
			echo "<ul>";
			while ($filename =(readdir($fp))) {     
				if($filename!='.'&&$filename!='..'){    //默认任何目录下会有一个 . 和 .. 的目录
					/*
						注意这里  举个例子:比如目录为 a/b/c  
						这里$file 就代表了a  我们要找b所以应该用 a/
					*/
					$newFile = $file."/".$filename;  
					if (is_dir($newFile)) {  //在判断
						echo '<li style ="color:red;">'.$filename."</li>";
						forFile($newFile);    //调用本身
					}else{
						echo "<li>".$filename."</li>";
					}
				}
			}
			echo "</ul>";
		}
	}
	forFile();

搞定!

猜你喜欢

转载自blog.csdn.net/strugglin/article/details/80549349
今日推荐