当前位置:首页 > PHP教程 > php函数 > 列表

使用PHP函数scandir排除特定目录

发布:smiling 来源: PHP粉丝网  添加日期:2021-02-16 08:58:52 浏览: 评论:0 

scandir()函数返回一个数组,其中包含指定路径中的文件和目录。这篇文章主要介绍了使用PHP函数scandir排除特定目录,需要的朋友可以参考下

scandir()函数返回一个数组,其中包含指定路径中的文件和目录。如下所示:

  1. <?php 
  2. print_r(scandir('test_directory')); 
  3. ?> 

输出:

  1. Array 
  2. [0]=>. 
  3. [1]=>.. 
  4. [2]=>1.txt 
  5. [3]=>2.txt 

大部分情况只需要该目录的文件列表数组,如下:

  1. Array 
  2. [0]=>1.txt 
  3. [1]=>2.txt 

一般是通过排除“.”或者“..”的数组项解决的:

  1. <?php 
  2. functionfind_all_files($dir
  3.     $root = scandir($dir); 
  4.     foreach($rootas$value
  5.     { 
  6.         if($value === '.' || $value === '..'){ 
  7.             continue
  8.         } 
  9.         if(is_file("$dir/$value")){ 
  10.             $result[] = "$dir/$value"
  11.             continue
  12.         } 
  13.         foreach(find_all_files("$dir/$value")as$value
  14.         { 
  15.             $result[] = $value
  16.             } 
  17.         } 
  18.     return$result
  19.     } 
  20. ?> 

另外一种方法,利用array_diff函数,剔除scandir函数执行得到的数组:

  1. <?php 
  2. $directory='/path/to/my/directory'
  3. $scanned_directory=array_diff(scandir($directory),array('..','.')); 
  4. ?> 

通常情况代码管理会产生.svn文件,或者限制目录访问权限的.htaccess等文件。所以通过array_diff函数来过滤会更方便。

Tags: scandir

分享到: