使用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 相关文章推荐
从康盛产品(discuz)提取出来的模板类
Jun 28 PHP
linux下为php添加curl扩展的方法
Jul 29 PHP
Php Ctemplate引擎开发相关内容
Mar 03 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
Jul 11 PHP
php常用表单验证类用法实例
Jun 18 PHP
php代码检查代理ip的有效性
Aug 19 PHP
Thinkphp连表查询及数据导出方法示例
Oct 15 PHP
thinkPHP5.0框架自动加载机制分析
Mar 18 PHP
php+resumablejs实现的分块上传 断点续传功能示例
Apr 18 PHP
PHP高效获取远程图片尺寸和大小的实现方法
Oct 20 PHP
kindeditor 加入七牛云上传的实例讲解
Nov 12 PHP
Laravel 6.2 中添加了可调用容器对象的方法
Oct 22 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通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
php线性表顺序存储实现代码(增删查改)
2012/02/16 PHP
浅析php插件 HTMLPurifier HTML解析器
2013/07/01 PHP
通过源码解析Laravel的依赖注入
2018/01/22 PHP
PHP封装curl的调用接口及常用函数详解
2018/05/31 PHP
Javascript中获取出错代码所在文件及行数的代码
2010/09/23 Javascript
js猜数字小游戏的简单实现代码
2013/07/02 Javascript
JS控制图片等比例缩放的示例代码
2013/12/24 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
javascript实现动态统计图开发实例
2015/11/21 Javascript
基于jquery实现省市区三级联动效果
2015/12/25 Javascript
AngularJS 2.0入门权威指南
2016/10/08 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
2017/05/11 Javascript
Require.js的基本用法详解
2017/07/03 Javascript
JavaScript与Java正则表达式写法的区别介绍
2017/08/15 Javascript
Angular 2 利用Router事件和Title实现动态页面标题的方法
2017/08/23 Javascript
解决iview打包时UglifyJs报错的问题
2018/03/07 Javascript
详解js实时获取并显示当前时间的方法
2019/05/10 Javascript
小程序云开发如何实现图片上传及发表文字
2019/05/17 Javascript
JavaScript中break、continue和return的用法区别实例分析
2020/03/02 Javascript
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
2020/09/11 Javascript
Python编程把二叉树打印成多行代码
2018/01/04 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
python中实现控制小数点位数的方法
2019/01/24 Python
Python Des加密解密如何实现软件注册码机器码
2020/01/08 Python
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
医院办公室主任职责
2013/12/29 职场文书
秋季婚礼证婚词
2014/01/11 职场文书
幼儿园春游活动方案
2014/01/19 职场文书
教师绩效考核方案
2014/01/21 职场文书
《愚公移山》教学反思
2014/02/20 职场文书
公司授权委托书样本
2014/09/15 职场文书
大学生暑假实习总结
2015/07/13 职场文书
2016年少先队活动总结
2016/04/06 职场文书
以MySQL5.7为例了解一下执行计划
2022/04/13 MySQL