使用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+AJAX实现无刷新注册(带用户名实时检测)
Dec 02 PHP
使用 PHPMAILER 发送邮件实例应用
Nov 07 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
Aug 10 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
Mar 19 PHP
微信自定义菜单的处理开发示例
Apr 16 PHP
PHP正则表达式之捕获组与非捕获组
Nov 06 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
Mar 01 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
Feb 14 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
Mar 14 PHP
php+ajax 文件上传代码实例
Mar 18 PHP
php的优点总结 php有哪些优点
Jul 19 PHP
Yii框架数据库查询、增加、删除操作示例
Oct 14 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运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
json的定义、标准格式及json字符串检验
2014/05/11 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
javascript图片预加载实例分析
2015/07/16 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
JavaScript之iterable_动力节点Java学院整理
2017/06/29 Javascript
jsonp跨域请求详解
2017/07/13 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
2019/04/01 Javascript
JS实现的雪花飘落特效示例
2019/12/03 Javascript
js实现验证码干扰(静态)
2021/02/22 Javascript
在Django的模型中执行原始SQL查询的方法
2015/07/21 Python
Python验证码识别处理实例
2015/12/28 Python
Python实现的文本编辑器功能示例
2017/06/30 Python
你真的了解Python的random模块吗?
2017/12/12 Python
python3+PyQt5实现自定义流体混合窗口部件
2018/04/24 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
Python @property使用方法解析
2019/09/17 Python
Python数据处理篇之Sympy系列(五)---解方程
2019/10/12 Python
python实现的读取网页并分词功能示例
2019/10/29 Python
python接口自动化如何封装获取常量的类
2019/12/24 Python
python实现三壶谜题的示例详解
2020/11/02 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
美国在线印刷公司:PsPrint
2017/10/12 全球购物
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
公司庆典邀请函范文
2014/01/13 职场文书
大学生求职自我评价
2014/01/16 职场文书
小学教师培训感言
2014/02/11 职场文书
教师个人年终总结
2015/02/11 职场文书
入门学习Go的基本语法
2021/07/07 Golang
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers