使用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
怎么样可以把 phpinfo()屏蔽掉?
Nov 24 PHP
ajax缓存问题解决途径
Dec 06 PHP
php之字符串变相相减的代码
Mar 19 PHP
php 论坛采集程序 模拟登陆,抓取页面 实现代码
Jul 09 PHP
PHP 万年历实现代码
Oct 18 PHP
ThinkPHP关于session的操作方法汇总
Jul 18 PHP
ThinkPHP登录功能的实现方法
Aug 20 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
May 11 PHP
PHP使用http_build_query()构造URL字符串的方法
Apr 02 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
May 11 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 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个人网站架设连环讲(三)
2006/10/09 PHP
让你的网站首页自动选择语言转跳
2006/12/06 PHP
thinkphp自带验证码全面解析
2016/09/18 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
PHP多维数组排序array详解
2017/11/21 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
js判断变量是否空值的代码
2008/10/26 Javascript
jQuery添加options点击事件并传值实例代码
2016/05/18 Javascript
jquery-mobile表单的创建方法详解
2016/11/23 Javascript
canvas实现探照灯效果
2017/02/07 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
2017/04/14 Javascript
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
2017/08/10 Javascript
ng-events类似ionic中Events的angular全局事件
2018/09/05 Javascript
vue+axios+promise实际开发用法详解
2018/10/15 Javascript
前端vue+elementUI如何实现记住密码功能
2020/09/20 Javascript
[01:59][TI9趣味视频] 全明星赛奖励
2019/08/23 DOTA
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
python3中bytes和string之间的互相转换
2017/02/09 Python
深入理解Python中的内置常量
2017/05/20 Python
解决Python 中英文混输格式对齐的问题
2018/07/16 Python
Python将文本去空格并保存到txt文件中的实例
2018/07/24 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
python+selenium实现QQ邮箱自动发送功能
2019/01/23 Python
python脚本开机自启的实现方法
2019/06/28 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
HTML5 画布canvas使用方法
2016/03/18 HTML / CSS
英国门把手公司:Door Handle Company
2019/05/12 全球购物
普通院校学生的自荐信
2013/11/27 职场文书
好的演讲稿开场白
2013/12/30 职场文书
《月亮湾》教学反思
2014/04/14 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
优秀班主任工作总结2015
2015/05/25 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书
创业计划书之旅游网站
2019/09/06 职场文书
如何在C++中调用Python
2021/05/21 Python