php遍历文件夹和文件列表示例分享


Posted in PHP onMarch 11, 2014

为PHP遍历目录和文件列表写了一个简单的类,并附上使用实例,大家参考使用吧

<?php
define('DS', DIRECTORY_SEPARATOR);
class getDirFile{
    //返回数组
    private $DirArray  = array();
    private $FileArray = array();
    private $DirFileArray = array();
    private $Handle,$Dir,$File;
    //获取目录列表
    public function getDir( & $Dir ){
        if( is_dir($Dir) ){
            if( false != ($Handle = opendir($Dir)) ){
                while( false != ($File = readdir($Handle)) ){
                    if( $File!='.' && $File!='..' && !strpos($File,'.') ){
                        $DirArray[] = $File;
                    }
                }
                closedir( $Handle );
            }
        }else{
            $DirArray[] = '[Path]:\''.$Dir.'\' is not a dir or not found!';
        }
        return $DirArray;
    }
    //获取文件列表
    public function getFile( & $Dir ){
        if( is_dir($Dir) ){
            if( false != ($Handle = opendir($Dir)) ) {
                while( false != ($File = readdir($Handle)) ){
                    if( $File!='.' && $File!='..' && strpos($File,'.') ){
                        $FileArray[] = $File;
                    }
                }
                closedir( $Handle );
            }
        }else{
            $FileArray[] = '[Path]:\''.$Dir.'\' is not a dir or not found!';
        }
        return $FileArray;
    }
    //获取目录/文件列表
    public function getDirFile( & $Dir ){
        if( is_dir($Dir) ){
            $DirFileArray['DirList'] = $this->getDir( $Dir );
            if( $DirFileArray ){
                foreach( $DirFileArray['DirList'] as $Handle ){
                    $File = $Dir.DS.$Handle;
                    $DirFileArray['FileList'][$Handle] = $this->getFile( $File );
                }
            }
        }else{
            $DirFileArray[] = '[Path]:\''.$Dir.'\' is not a dir or not found!';
        }
        return $DirFileArray;
    }
}
?>

实例:(相对路径或绝对路径)

1.获取目录列表

<?php
$Dir_dir  = './example';
$getDirFile = new getDirFile();
$getDir = $getDirFile->getDir( $Dir_dir );
print_r($getDir);
?>

显示

<?php
$File_one_dir = './example/example_one';
$File_two_dir = 'E:/Workspace/mycode/getDirFile/example/example_two';
$getDirFile = new getDirFile();
$getFile_one = $getDirFile->getFile( $File_one_dir );
$getFile_two = $getDirFile->getFile( $File_two_dir );
print_r($getFile_one);
print_r($getFile_two);
?>

2.获取文件列表

<?php
$File_one_dir = './example/example_one';
$File_two_dir = 'E:/Workspace/mycode/getDirFile/example/example_two';
$getDirFile = new getDirFile();
$getFile_one = $getDirFile->getFile( $File_one_dir );
$getFile_two = $getDirFile->getFile( $File_two_dir );
print_r($getFile_one);
print_r($getFile_two);
?>

显示

Array
(
    [0] => example.sql
    [1] => example.txt
)
Array
(
    [0] => example.php
)

3.获取目录/文件列表

<?php
$Dir_dir  = './example';
$getDirFile = new getDirFile();
$getDirFile  = $getDirFile->getDirFile( $Dir_dir );
print_r($getDirFile);
?>

显示

Array
(
    [DirList] => Array
        (
            [0] => example_one
            [1] => example_two
        )
    [FileList] => Array
        (
            [example_one] => Array
                (
                    [0] => example.sql
                    [1] => example.txt
                )
            [example_two] => Array
                (
                    [0] => example.php
                )
        )
)
PHP 相关文章推荐
自己前几天写的无限分类类
Feb 14 PHP
基于PHP CURL用法的深入分析
Jun 09 PHP
php多重接口的实现方法
Jun 20 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
Aug 16 PHP
PHP中常用的数组操作方法笔记整理
May 16 PHP
php 魔术常量详解及实例代码
Dec 04 PHP
thinkPHP框架RBAC实现原理分析
Feb 01 PHP
ThinkPHP3.2框架自带分页功能实现方法示例
May 13 PHP
PHP 7.4中使用预加载的方法详解
Jul 08 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
Jul 20 PHP
php 实现银联商务H5支付的示例代码
Oct 12 PHP
PHP7 字符串处理机制修改
Mar 09 PHP
php获取文件夹路径内的图片以及分页显示示例
Mar 11 #PHP
php上传图片存入数据库示例分享
Mar 11 #PHP
php使用反射插入对象示例分享
Mar 11 #PHP
php数组编码转换示例详解
Mar 11 #PHP
使用Discuz关键词服务器实现PHP中文分词
Mar 11 #PHP
PHP输出缓存ob系列函数详解
Mar 11 #PHP
php初始化对象和析构函数的简单实例
Mar 11 #PHP
You might like
PHP 常见郁闷问题答解
2006/11/25 PHP
PHP insert语法详解
2008/06/07 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
2017/02/28 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
2019/08/09 PHP
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
2016/01/28 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
2016/05/28 Javascript
jQuery实现Select左右复制移动内容
2016/08/05 Javascript
JavaScript函数柯里化原理与用法分析
2017/03/31 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
Bootstrap Table 删除和批量删除
2017/09/22 Javascript
JavaScript实现计数器基础方法
2017/10/10 Javascript
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
json数据传到前台并解析展示成列表的方法
2018/08/06 Javascript
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
在vue项目中引入highcharts图表的方法
2019/01/21 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
[01:22]DOTA2神秘商店携大量周边降临完美大师赛
2017/11/07 DOTA
python里对list中的整数求平均并排序
2014/09/12 Python
python微信跳一跳系列之色块轮廓定位棋盘
2018/02/26 Python
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
Python字符串split及rsplit方法原理详解
2020/06/29 Python
python中openpyxl和xlsxwriter对Excel的操作方法
2021/03/01 Python
测绘工程本科生求职信
2013/10/10 职场文书
英语自荐信范文
2013/12/11 职场文书
采购助理岗位职责
2014/02/16 职场文书
小学教师自我鉴定范文
2014/03/20 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
优秀团队申报材料
2014/12/26 职场文书
新郎新娘致辞
2015/07/31 职场文书
公司财务制度:成本管理控制制度模板
2019/11/19 职场文书
python 用递归实现通用爬虫解析器
2021/04/16 Python
mysql的单列多值存储实例详解
2022/04/05 MySQL