芒果小站

  1. 全球最具业界良心的主机 - Linode

    毫无疑问,目前做得最好的主机供应商

    猛击这里查看

  2. 芒果小站目前使用的主机 - Linode

    客服响应快,随时退款,XEN 架构稳定

    猛击这里查看

  3. 最好的日本东京线路主机 - Linode

    可选弗里蒙特、达拉斯、亚特兰大、纽瓦克、伦敦、东京机房

    猛击这里查看

  • 1
  • 2
  • 3
切换到精简模式
13

PHP 函数 scandir 排除特定目录

作者 芒果/分类 代码/发布于 2012-03-30 13:01

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

例子:

<?php
print_r(scandir('test_directory'));
?>

输出:

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

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

Array
(
[0] => 1.txt
[1] => 2.txt
)

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

<?php 
 function find_all_files($dir)
 {
     $root = scandir($dir);
     foreach($root as $value)
     {
         if($value === '.' || $value === '..') {continue;}
         if(is_file("$dir/$value")) {$result[]="$dir/$value";continue;}
         foreach(find_all_files("$dir/$value") as $value)
         {
             $result[]=$value;
         }
     }
     return $result;
 }
 ?>

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

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

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

参考资料:http://cn.php.net/manual/zh/function.scandir.php

版权所有,转载请注明出处。
转载自 <a href="http://mangguo.org/the-php-function-scandir-exclude-specific-directories/" title="PHP 函数 scandir 排除特定目录" rel="bookmark">PHP 函数 scandir 排除特定目录 | 芒果小站</a>
如果喜欢这篇文章,欢迎订阅芒果小站以获得最新内容。

已经有 13 条群众意见

  1. 空气净化机 /2012-03-30 15:00

    每一次我都收下,这次也不例外! 回应

    #1
  2. 透视杯碗 /2012-03-31 10:54

    好东西,收藏了。 回应

    #2
  3. 淘宝网 /2012-03-31 13:39

    周末加班,等着清明放假喽 回应

    #3
  4. 三妙清 /2012-03-31 14:26

    第一次来,挺不错的。 回应

    #4
  5. 神宇网络科技有限公司 /2012-04-04 09:42

    不错,支持老大 回应

    #5
  6. 广东seo /2012-04-07 04:59

    来看看你的博客,有空也去我那看看! 回应

    #6
  7. 泰迪犬论坛 /2012-04-07 09:06

    我也想做这样的博客,谁帮帮我啊啊 回应

    #7
  8. xiduoduo365 /2012-04-07 23:50

    不能为了看而看,要从中学习经验,呵 回应

    #8
  9. 热播电视剧排行榜 /2012-04-08 11:00

    最近网速有点慢哦 回应

    #9
  10. 郑德才博客 /2012-04-08 14:43

    网页好慢 回应

    #10
  11. 焉耆第一站 /2012-04-08 19:54

    喜欢文章,看看 回应

    #11
  12. 苏州地暖 /2012-04-09 19:53

    QQ多少啊 ? 回应

    #12
  13. 女主 /2012-04-17 14:21

    这几天学习php,好好研究下。 回应

    #13

下面我简单说几句