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 相关文章推荐
php正则校验用户名介绍
Jul 19 PHP
PHP中feof()函数实例测试
Aug 23 PHP
thinkphp实现发送邮件密码找回功能实例
Dec 01 PHP
php微信支付之APP支付方法
Mar 04 PHP
php实现图片转换成ASCII码的方法
Apr 03 PHP
详解PHP中的PDO类
Jul 06 PHP
WordPress中自定义后台管理界面配色方案的小技巧
Dec 29 PHP
php版微信公众平台开发之验证步骤实例详解
Sep 23 PHP
PHP结合Ueditor并修改图片上传路径
Oct 16 PHP
yii2简单使用less代替css示例
Mar 10 PHP
laravel实现上传图片的两种方式小结
Oct 12 PHP
详解Laravel服务容器的优势
May 29 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学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
PHP 读取和编写 XML
2014/11/19 PHP
PHP面向对象详解(三)
2015/12/07 PHP
非阻塞动态加载javascript广告实现代码
2010/11/17 Javascript
javascript中[]和{}对象使用介绍
2013/03/20 Javascript
JQuery中serialize() 序列化
2015/03/13 Javascript
AngularJS ng-style中使用filter
2016/09/21 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
JQueryEasyUI之DataGrid数据显示
2016/11/23 Javascript
js拖拽功能实现代码解析
2016/11/28 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
2016/12/14 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
详解vue服务端渲染(SSR)初探
2017/06/19 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
2017/10/31 Javascript
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
[01:09:24]Ti4开幕式
2014/07/19 DOTA
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
2014/04/25 Python
Python程序设计入门(5)类的使用简介
2014/06/16 Python
Python列表(list)常用操作方法小结
2015/02/02 Python
Python中格式化format()方法详解
2017/04/01 Python
Python实现快速傅里叶变换的方法(FFT)
2018/07/21 Python
python读写配置文件操作示例
2019/07/03 Python
python元组的概念知识点
2019/11/19 Python
Python 实现国产SM3加密算法的示例代码
2020/09/21 Python
澳大利亚领先的宠物用品商店:VetSupply
2017/09/08 全球购物
成人毕业生自我鉴定
2013/10/18 职场文书
体育教育专业毕业生自荐信
2013/11/15 职场文书
参赛口号
2014/06/16 职场文书
班子四风对照检查材料
2014/08/21 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
公司周年庆典标语
2014/10/07 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
商标侵权律师函
2015/05/27 职场文书
ajax请求前端跨域问题原因及解决方案
2021/10/16 Javascript
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js
Python使用Web框架Flask开发项目
2022/06/01 Python