php目录处理函数

常见的php目录处理函数有以下几个:

  1. getcwd() :若成功,则返回当前工作目录,否则返回false
  2. chdir():改变当前目录,若成功,返回true,否则返回false
  3. opendir():打开一个目录,若成功,返回打开目录句柄的resource,否则返回false
  4. mkdir():创建目录,若成功,返回true,否则返回false,如:mkdir("/path/to/my/dir"0700);
  5. rmdir():尝试删除所指定的目录。 该目录必须是空的,而且要有相应的权限。成功时返回 true, 或者在失败时返回false;
  6. closedir():关闭目录句柄;
  7. readdir():readdir() 函数返回由 opendir() 打开的目录句柄中的条目。若成功,则该函数返回一个文件名,否则返回false
  8. scandir():scandir() 函数返回一个数组,其中包含指定路径中的文件和目录。若成功,则返回一个数组,若失败,则返回false。如果 directory 不是目录,则返回布尔值false并生成一条 E_WARNING 级的错误。
  9. dir():dir() 函数打开一个目录句柄,并返回一个对象。这个对象包含三个方法:read() , rewind() 以及 close()。若成功,则该函数返回一个目录流,否则返回 false以及一个 error。可以通过在函数名前加上 "@" 来隐藏 error 的输出。
  10. realpath():realpath() 函数返回绝对路径。该函数删除所有符号连接(比如 '/./', '/../' 以及多余的 '/'),返回绝对路径名。若失败,则返回false。比如说文件不存在的话。
遍历一个目录下的所有目录及文件

我不得不说我被这个面试题给打败了2次,两次遇到这个题目我都得回想半天操作目录的函数有哪些个。这实在是一件很悲催的事!!!奋斗奋斗

代码如下:

方法1:用dir()函数

 function tree($directory) 
{
	$mydir=dir($directory);
	echo "<ul>\n";
	while($file=$mydir->read()){
		$tmp = realpath($directory."/".$file);
		if((is_dir($tmp))){
			if(($file!=".") && ($file!=".."))
			{
				echo "<li><font color='red'><b>$file</b></font></li>\n";
				tree($tmp);
			}

		}else{

			echo "<li>$file</li>\n";
		}

	}
	echo "</ul>\n";
	$mydir->close();
}
tree($dir);

方法2:用scandir()函数

function tree1($directory){
	if(is_dir($directory)){
		$myarrdir = scandir($directory);
		echo "<ul>\n";
		for($i=0;$i<count($myarrdir);$i++){
			if($myarrdir[$i] != "." && $myarrdir[$i] != ".."){
				$tmp = realpath($directory."/".$myarrdir[$i]);
				if(is_dir($tmp)){
					echo "<li><font color='red'><b>$myarrdir[$i]</b></font></li>\n";
					tree1($tmp);
				}else{
					echo "<li>$myarrdir[$i]</li>\n";
				}
			}

		}
		echo "</ul>\n";
	}
}
//tree1($dir);

方法3:用readdir()函数

function tree2($directory){
	if(is_dir($directory)){
		$mydir = opendir($directory);
		echo "<ul>\n";
		while(($file = readdir($mydir)) !== false){
			if($file != "." && $file != ".."){
				$tmp = realpath($directory."/".$file);
				if(is_dir($tmp)){
					echo "<li><font color='red'><b>$file</b></font></li>\n";
					tree2($tmp);
				}else{
					echo "<li>$file</li>\n";
				}
			}
		}
		echo "</ul>\n";
		closedir($mydir);
	}
}
tree2($dir);

除了这三种,好像还有别的方法,以后有时间再补充吧!

$dir = 'D:\Apache2.2\conf';

输出结果如下图:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值