使用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时间不正确的解决方法
Apr 09 PHP
PHP中去掉字符串首尾空格的方法
May 19 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
May 29 PHP
php实现的短网址算法分享
Jun 20 PHP
php+mysql大量用户登录解决方案分析
Dec 29 PHP
php实现数组按指定KEY排序的方法
Mar 30 PHP
PHP异常处理浅析
May 12 PHP
PHP图形操作之Jpgraph学习笔记
Dec 25 PHP
PHP实现对二维数组某个键排序的方法
Sep 14 PHP
PHP图片添加水印功能示例小结
Oct 03 PHP
PHP 访问数据库配置通用方法(json)
May 20 PHP
PHP中16个高危函数整理
Sep 19 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
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
PHP常用编译参数中文说明
2014/09/27 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
很酷的javascript loading效果代码
2008/06/18 Javascript
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
ExtJs默认的字体大小改变的几种方法(自己整理)
2013/04/18 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
js获得参数的getParameter使用示例
2014/02/26 Javascript
node.js中的forEach()是同步还是异步呢
2015/01/29 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
十分钟教你上手ES2020新特性
2020/02/12 Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
2020/06/17 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
[51:05]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第一局
2016/03/06 DOTA
python获取指定网页上所有超链接的方法
2015/04/04 Python
python爬虫爬取某站上海租房图片
2018/02/04 Python
Python中Proxypool库的安装与配置
2018/10/19 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
Pandas之groupby( )用法笔记小结
2019/07/23 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
一篇文章带你学习CSS3图片边框
2020/11/04 HTML / CSS
师范生实习自我鉴定
2013/11/01 职场文书
教育课题研究自我鉴定范文
2013/12/28 职场文书
建筑工地宣传标语
2014/06/18 职场文书
支部书记四风对照材料
2014/08/28 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
SQL Server数据定义——模式与基本表操作
2021/04/05 SQL Server
Python Django 后台管理之后台模型属性详解
2021/04/25 Python
Java反应式框架Reactor中的Mono和Flux
2021/07/25 Java/Android
Javascript 解构赋值详情
2021/11/17 Javascript
Oracle 触发器trigger使用案例
2022/02/24 Oracle
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android