使用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验证码代码
Feb 27 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
Apr 15 PHP
解析PHP实现下载文件的两种方法
Jul 05 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
Nov 03 PHP
php将日期格式转换成xx天前的格式
Apr 16 PHP
在PHP中使用FastCGI解析漏洞及修复方案
Nov 10 PHP
PHP中使用array函数新建一个数组
Nov 19 PHP
PHP中substr函数字符串截取用法分析
Jan 07 PHP
php禁用cookie后session设置方法分析
Oct 19 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
Sep 30 PHP
PHP实现基于状态的责任链审批模式详解
May 31 PHP
php实现分页功能的详细实例方法
Sep 29 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调用.NET的WebService 简单实例
2015/03/27 PHP
PHP使用Pthread实现的多线程操作实例
2015/11/14 PHP
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
JavaScript 匿名函数(anonymous function)与闭包(closure)
2011/10/04 Javascript
Extjs实现进度条的两种便捷方式
2013/09/26 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
2015/03/31 Javascript
jQuery实现的AJAX简单弹出层效果代码
2015/11/26 Javascript
JS组件系列之Bootstrap Icon图标选择组件
2016/01/28 Javascript
JS实现的仿QQ空间图片弹出效果代码
2016/02/23 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
2020/10/26 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
简述jQuery Easyui一些用法
2017/08/01 jQuery
vuex学习之Actions的用法详解
2017/08/29 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
2017/09/13 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
使用layer.msg 时间设置不起作用的解决方法
2019/09/12 Javascript
VUE-ElementUI 自定义Loading图操作
2020/11/11 Javascript
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
简单讲解Python中的闭包
2015/08/11 Python
Python实现批量检测HTTP服务的状态
2016/10/27 Python
Python实现简单层次聚类算法以及可视化
2019/03/18 Python
Python中单线程、多线程和多进程的效率对比实验实例
2019/05/14 Python
Python日志无延迟实时写入的示例
2019/07/11 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
python序列化与数据持久化实例详解
2019/12/20 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
国外的一些J2EE面试题一
2012/10/13 面试题
公司新年寄语
2014/04/04 职场文书
销售代理协议书
2014/09/30 职场文书
敲诈同学钱财检讨书范文
2014/11/18 职场文书
新年晚会主持词开场白
2015/05/28 职场文书
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS
《原神》新角色演示“神里绫人:林隐泓洄” 宠妹狂魔
2022/04/03 其他游戏