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 相关文章推荐
用header 发送cookie的php代码
Mar 16 PHP
一些常用的php简单命令代码集锦
Sep 24 PHP
PHP判断变量是否为0的方法
Feb 08 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
Jun 25 PHP
php异步多线程swoole用法实例
Nov 14 PHP
php抽象类使用要点与注意事项分析
Feb 09 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
Mar 03 PHP
Zend Framework数据库操作技巧总结
Feb 18 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
php ajax confirm 删除实例详解
Mar 06 PHP
通过代码实例解析PHP session工作原理
Dec 11 PHP
PHP实现创建以太坊钱包转账等功能
Apr 21 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 特殊字符处理函数
2008/09/05 PHP
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
php的PDO事务处理机制实例分析
2017/02/16 PHP
又一个图片自动缩小的JS代码
2007/03/10 Javascript
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
类似php的js数组的in_array函数自定义方法
2013/12/27 Javascript
javascript计算星座属相(十二生肖属相)示例代码
2014/01/09 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
jquery.cookie.js实现用户登录保存密码功能的方法
2016/04/15 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
Bootstrap CSS布局之图像
2016/12/17 Javascript
js实现简易聊天对话框
2017/08/17 Javascript
在vue中解决提示警告 for循环报错的方法
2018/09/28 Javascript
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
python 图片验证码代码分享
2012/07/04 Python
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
wxpython绘制圆角窗体
2019/11/18 Python
pycharm运行scrapy过程图解
2019/11/22 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
详解css3自定义滚动条样式写法
2017/12/25 HTML / CSS
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
车间班长岗位职责
2013/11/30 职场文书
应届毕业生自我鉴定范文
2013/12/27 职场文书
国家励志奖学金获奖感言
2014/01/09 职场文书
乡下人家教学反思
2014/02/01 职场文书
六一亲子活动总结
2014/07/01 职场文书
医生个人年度总结
2015/02/28 职场文书
党员自我评价范文2015
2015/03/03 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
800字作文之大雪
2019/12/04 职场文书
Spring Boot两种全局配置和两种注解的操作方法
2021/06/29 Java/Android
java设计模式--三种工厂模式详解
2021/07/21 Java/Android
日元符号 ¥
2022/02/17 杂记