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

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函数来过滤会更方便。

Adminn.Cn部分文章收集自网络,供站长学习交流使用,如侵犯您的权益,请联系我们删除或修正。站内分享部分源码需付费下载,维持网站开支。20RMB以上源码下载后安装碰到问题,请联系QQ677123帮助。但我们分享源码仅供学习研究使用,如您要直接上线做站,请自负版权等问题,并严格遵守互联网法律法规建站,远离黄赌骗。也不给灰色行业提供任何广告服务。净化网络环境,站长更有责!!!
站长分享圈 » 使用PHP函数scandir排除特定目录