使用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 模拟post_验证页面的返回状态(实例讲解)
Oct 28 PHP
PHP小教程之实现双向链表
Jun 12 PHP
使用PHPMailer实现邮件发送代码分享
Oct 23 PHP
php中使用gd库实现下载网页中所有图片
May 12 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
Jan 04 PHP
PHP命名空间和自动加载类
Apr 03 PHP
php简单实现sql防注入的方法
Apr 22 PHP
php版微信js-sdk支付接口类用法示例
Oct 12 PHP
php 防止表单重复提交两种实现方法
Nov 03 PHP
PHP输出XML格式数据的方法总结
Feb 08 PHP
关于PHP通用返回值设置方法
Mar 31 PHP
Django中的cookie与session操作实例代码
Aug 17 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/03/04 星际争霸
php关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
laravel框架与其他框架的详细对比
2019/10/23 PHP
Laravel 框架路由原理与路由访问实例分析
2020/04/14 PHP
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
AngularJS基础 ng-mouseover 指令简单示例
2016/08/02 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
jQuery实现的自定义滚动条实例详解
2016/09/20 Javascript
node.js缺少mysql模块运行报错的解决方法
2016/11/13 Javascript
微信小程序实现手指触摸画板
2018/07/09 Javascript
解决vue中post方式提交数据后台无法接收的问题
2018/08/11 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
2019/06/24 Javascript
layui 上传图片 返回图片地址的方法
2019/09/26 Javascript
JS实现扫码枪扫描二维码功能
2020/01/03 Javascript
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
django 通过url实现简单的权限控制的例子
2019/08/16 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
2019/08/20 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
python爬取音频下载的示例代码
2020/10/19 Python
html5利用canvas绘画二级树形结构图的示例
2017/09/27 HTML / CSS
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
保时捷设计:Porsche Design
2019/03/30 全球购物
德国专业木制品经销商:Holz-Direkt24
2019/12/26 全球购物
学习型班组申报材料
2014/05/31 职场文书
2014年保管员工作总结
2014/11/18 职场文书
毕业实习计划书
2015/01/16 职场文书
毕业酒会致辞
2015/07/29 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书
python神经网络编程之手写数字识别
2021/05/08 Python
python基础之//、/与%的区别详解
2022/06/10 Python
Go gRPC进阶教程gRPC转换HTTP
2022/06/16 Golang