使用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+MYSQL的文章管理系统(一)
Oct 09 PHP
简单PHP上传图片、删除图片实现代码
May 12 PHP
php smarty 二级分类代码和模版循环例子
Jun 01 PHP
PHPThumb PHP 图片缩略图库
Mar 11 PHP
PHP中计算字符串相似度的函数代码
Dec 29 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
May 10 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
Jan 19 PHP
php 流程控制switch的简单实例
Jun 07 PHP
php 多文件上传的实现实例
Oct 23 PHP
详解thinkphp中的volist标签
Jan 15 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
Oct 11 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实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
在laravel框架中实现封装公共方法全局调用
2019/10/14 PHP
js切换光标示例代码
2013/10/10 Javascript
JavaScript中实现依赖注入的思路分享
2015/01/15 Javascript
js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
2015/11/09 Javascript
JS实现队列与堆栈的方法
2016/04/21 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
2016/11/03 Javascript
基于MVC方式实现三级联动(JavaScript)
2017/01/23 Javascript
js实现点击切换checkbox背景图片的简单实例
2017/05/08 Javascript
layui表格实现代码
2017/05/20 Javascript
让webpack+vue-cil项目不再自动打开浏览器的方法
2018/09/27 Javascript
Vue插件从封装到发布的完整步骤记录
2019/02/28 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
JS将时间秒转换成天小时分钟秒的字符串
2019/07/10 Javascript
three.js 将图片马赛克化的示例代码
2020/07/31 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
[05:00]第二届DOTA2亚洲邀请赛主赛事第三天比赛集锦.mp4
2017/04/04 DOTA
python获取beautifulphoto随机某图片代码实例
2013/12/18 Python
Python用GET方法上传文件
2015/03/10 Python
Python遍历目录的4种方法实例介绍
2015/04/13 Python
python复制文件的方法实例详解
2015/05/22 Python
在Django中创建第一个静态视图
2015/07/15 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
2018/02/24 Python
python pillow模块使用方法详解
2019/08/30 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
使用Keras实现Tensor的相乘和相加代码
2020/06/18 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
2020/09/01 Python
使用CSS3创建动态菜单效果
2015/07/10 HTML / CSS
HTML5 Video标签的属性、方法和事件汇总介绍
2015/04/24 HTML / CSS
基于Html5实现的语音搜索功能
2019/05/13 HTML / CSS
勤俭节约演讲稿
2014/05/08 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
中学生旷课检讨书500字
2014/10/29 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
Golang 并发编程 SingleFlight模式
2022/04/26 Golang
postgresql如何找到表中重复数据的行并删除
2023/05/08 MySQL