使用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 fsockopen写的HTTP下载的类
Feb 22 PHP
实现dedecms全站URL静态化改造的代码
Mar 29 PHP
php日历[测试通过]
Mar 27 PHP
解析CI即CodeIgniter框架在Nginx下的重写规则
Jun 03 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
Jul 08 PHP
2个Codeigniter文件批量上传控制器写法例子
Jul 25 PHP
PHP实现下载断点续传的方法
Nov 12 PHP
PHP图形操作之Jpgraph学习笔记
Dec 25 PHP
PHP获取文件扩展名的方法实例总结
Jun 10 PHP
php简单读取.vcf格式文件的方法示例
Sep 02 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
Sep 30 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
Mar 09 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
source.php查看源文件
2006/12/09 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
php实现JWT(json web token)鉴权实例详解
2019/11/05 PHP
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
2012/12/25 Javascript
JavaScript编写简单的计算器
2015/11/25 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
Vue.JS实现垂直方向展开、收缩不定高度模块的JS组件
2018/06/19 Javascript
Vue动画事件详解及过渡动画实例
2019/02/09 Javascript
微信小程序与公众号实现数据互通的方法
2019/07/25 Javascript
vue props 单项数据流实例分享
2020/02/16 Javascript
vue setInterval 定时器失效的解决方式
2020/07/30 Javascript
[49:56]VG vs Optic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
python3中dict(字典)的使用方法示例
2017/03/22 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
2017/07/06 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
wxpython+pymysql实现用户登陆功能
2019/11/19 Python
Python使用for生成列表实现过程解析
2020/09/22 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
如何利用python生成MD5并去重
2020/12/07 Python
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
党员一句话承诺大全
2014/03/28 职场文书
家长高考寄语
2015/02/27 职场文书
2015年度员工自我评价范文
2015/03/11 职场文书
任命通知范文
2015/04/21 职场文书
婚庆开业庆典主持词
2015/06/30 职场文书
小学校长开学致辞
2015/07/29 职场文书
工伤调解协议书
2016/03/21 职场文书
python3美化表格数据输出结果的实现代码
2021/04/14 Python
CSS 制作波浪效果的思路
2021/05/18 HTML / CSS