使用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 相关文章推荐
递归列出所有文件和目录
Oct 09 PHP
PHP 和 MySQL 开发的 8 个技巧
Oct 09 PHP
PHP 金额数字转换成英文
May 06 PHP
PHP如何解决网站大流量与高并发的问题
Jun 25 PHP
用穿越火线快速入门php面向对象
Feb 22 PHP
使用php验证复选框有效性的示例
Nov 13 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
Sep 02 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
May 16 PHP
php基于数组函数实现关联表的编辑操作示例
Jul 04 PHP
PHP常用操作类之通信数据封装类的实现
Jul 16 PHP
php+redis实现消息队列功能示例
Sep 19 PHP
PHP7.3.10编译安装教程
Oct 08 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
《雄兵连》《烈阳天道》真的来了
2020/07/13 国漫
php中的登陆login
2007/01/18 PHP
PHP微框架Dispatch简介
2014/06/12 PHP
jquery中实现简单的tabs插件功能的代码
2011/03/02 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
jQuery中$(function() {});问题详解
2015/08/10 Javascript
Javascript单例模式的介绍和实例
2016/10/08 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
bootstrap弹出层的多种触发方式
2017/05/10 Javascript
ES6扩展运算符的用途实例详解
2017/08/20 Javascript
JS返回顶部实例代码
2020/08/09 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
[01:09:24]Ti4开幕式
2014/07/19 DOTA
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
[52:32]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第三场 11.18
2020/11/18 DOTA
python实现将文本转换成语音的方法
2015/05/28 Python
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
python得到单词模式的示例
2018/10/15 Python
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
python实现集中式的病毒扫描功能详解
2019/07/09 Python
Django实现基于类的分页功能
2019/10/31 Python
python ssh 执行shell命令的示例
2020/09/29 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
英语专业毕业生自我鉴定
2013/11/09 职场文书
工商管理毕业生推荐信
2013/12/24 职场文书
教研活动总结
2014/04/28 职场文书
股东授权委托书范本
2014/09/13 职场文书
2014年环保工作总结
2014/11/26 职场文书
实习单位指导教师评语
2014/12/30 职场文书
采购员岗位职责范本
2015/04/07 职场文书
银行客户经理培训心得体会
2016/01/09 职场文书
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
2021/05/14 Python
详解redis分布式锁的这些坑
2021/05/19 Redis
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis