常见的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()函数

  1.  function tree($directory)   
  2. {  
  3.     $mydir=dir($directory);  
  4.     echo "<ul>\n";  
  5.     while($file=$mydir->read()){  
  6.         $tmp = realpath($directory."/".$file);  
  7.         if((is_dir($tmp))){  
  8.             if(($file!=".") && ($file!=".."))  
  9.             {  
  10.                 echo "<li><font color='red'><b>$file</b></font></li>\n";  
  11.                 tree($tmp);  
  12.             }  
  13.   
  14.         }else{  
  15.   
  16.             echo "<li>$file</li>\n";  
  17.         }  
  18.   
  19.     }  
  20.     echo "</ul>\n";  
  21.     $mydir->close();  
  22. }  
  23. tree($dir);  

方法2:用scandir()函数
  1. function tree1($directory){  
  2.     if(is_dir($directory)){  
  3.         $myarrdir = scandir($directory);  
  4.         echo "<ul>\n";  
  5.         for($i=0;$i<count($myarrdir);$i++){  
  6.             if($myarrdir[$i] != "." && $myarrdir[$i] != ".."){  
  7.                 $tmp = realpath($directory."/".$myarrdir[$i]);  
  8.                 if(is_dir($tmp)){  
  9.                     echo "<li><font color='red'><b>$myarrdir[$i]</b></font></li>\n";  
  10.                     tree1($tmp);  
  11.                 }else{  
  12.                     echo "<li>$myarrdir[$i]</li>\n";  
  13.                 }  
  14.             }  
  15.   
  16.         }  
  17.         echo "</ul>\n";  
  18.     }  
  19. }  
  20. //tree1($dir);  

方法3:用readdir()函数
  1. function tree2($directory){  
  2.     if(is_dir($directory)){  
  3.         $mydir = opendir($directory);  
  4.         echo "<ul>\n";  
  5.         while(($file = readdir($mydir)) !== false){  
  6.             if($file != "." && $file != ".."){  
  7.                 $tmp = realpath($directory."/".$file);  
  8.                 if(is_dir($tmp)){  
  9.                     echo "<li><font color='red'><b>$file</b></font></li>\n";  
  10.                     tree2($tmp);  
  11.                 }else{  
  12.                     echo "<li>$file</li>\n";  
  13.                 }  
  14.             }  
  15.         }  
  16.         echo "</ul>\n";  
  17.         closedir($mydir);  
  18.     }  
  19. }  
  20. tree2($dir);  

除了这三种,好像还有别的方法,以后有时间再补充吧!
  1. $dir = 'D:\Apache2.2\conf';  

输出结果如下图:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值