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


Posted in PHP onJune 12, 2014

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

例子:

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

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

大部分情况只需要该目录的文件列表数组,如下:
Array
(
[0]=>1.txt
[1]=>2.txt
)

一般是通过排除“.”或者“..”的数组项解决的:
<?php
functionfind_all_files($dir)
{
    $root = scandir($dir);
    foreach($rootas$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函数来过滤会更方便。
PHP 相关文章推荐
PHP 中dirname(_file_)讲解
Mar 18 PHP
PHP正则的Unknown Modifier错误解决方法
Mar 02 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
Aug 03 PHP
Array of country list in PHP with Zend Framework
Oct 17 PHP
php-perl哈希算法实现(times33哈希算法)
Dec 30 PHP
php cookie工作原理与实例详解
Jul 18 PHP
Laravel 5.3 学习笔记之 安装
Aug 28 PHP
php实现登陆模块功能示例
Oct 20 PHP
PHP常用函数总结(180多个)
Dec 25 PHP
thinkphp 手机号和用户名同时登录
Jan 20 PHP
php计算给定日期所在周的开始日期和结束日期示例
Feb 06 PHP
PHP数据库编程之MySQL优化策略概述
Aug 16 PHP
使用配置类定义Codeigniter全局变量
Jun 12 #PHP
CodeIgniter输出中文乱码的两种解决办法
Jun 12 #PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
Jun 12 #PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
Jun 12 #PHP
php 过滤英文标点符号及过滤中文标点符号代码
Jun 12 #PHP
PHP读取RSS(Feed)简单实例
Jun 12 #PHP
Codeigniter实现智能裁剪图片的方法
Jun 12 #PHP
You might like
无数据库的详细域名查询程序PHP版(2)
2006/10/09 PHP
php中session退出登陆问题
2014/02/27 PHP
php获取mysql字段名称和其它信息的例子
2014/04/14 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
php中文字符串截取多种方法汇总
2016/10/06 PHP
js变量以及其作用域详解
2020/07/18 Javascript
有关javascript的性能优化 (repaint和reflow)
2013/04/12 Javascript
javascript中clone对象详解
2014/12/03 Javascript
浅谈AngularJs指令之scope属性详解
2016/10/24 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
深入理解基于vue-cli的vuex配置
2017/07/24 Javascript
详解React Native 屏幕适配(炒鸡简单的方法)
2018/06/11 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
jQuery 动画与停止动画效果实例详解
2020/05/19 jQuery
[43:35]EG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
pytz格式化北京时间多出6分钟问题的解决方法
2019/06/21 Python
Python openpyxl 插入折线图实例
2020/04/17 Python
AVIS安飞士奥地利租车官网:提供奥地利、欧洲和全世界汽车租赁
2016/11/29 全球购物
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
教师年终个人自我评价
2013/10/04 职场文书
工作中的自我评价如何写好
2013/10/28 职场文书
计算机系毕业生推荐信
2013/11/06 职场文书
预备党员思想汇报范文
2014/01/11 职场文书
初二政治教学反思
2014/01/12 职场文书
创先争优个人承诺书
2014/08/30 职场文书
青年文明号汇报材料
2014/12/23 职场文书
考研导师推荐信范文
2015/03/27 职场文书
2015年妇委会工作总结
2015/05/22 职场文书
甲午风云观后感
2015/06/02 职场文书
学校运动会简讯
2015/07/20 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
导游词之江西赣州
2019/10/15 职场文书
详解Redis基本命令与使用场景
2021/06/01 Redis
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫