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 模板高级篇总结
Dec 21 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
Apr 07 PHP
php 团购折扣计算公式
Nov 24 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
May 27 PHP
dedecms函数分享之获取某一栏目所有子栏目
May 19 PHP
php获取YouTube视频信息的方法
Feb 11 PHP
smarty学习笔记之常见代码段用法总结
Mar 19 PHP
PHP使用递归算法无限遍历数组示例
Jan 13 PHP
PHP SFTP实现上传下载功能
Jul 26 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
Aug 12 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
Oct 15 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 第二节 数据类型之转换
2012/04/28 PHP
redis+php实现微博(一)注册与登录功能详解
2019/09/23 PHP
PHP 实现链式操作
2021/03/09 PHP
js查找父节点的简单方法
2008/06/28 Javascript
jquery 双色表格实现代码
2009/12/08 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
jQuery 限制输入字符串长度
2016/06/20 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
VUE实现一个分页组件的示例
2017/09/13 Javascript
js中bool值的转换及“&amp;&amp;”、“||”、 “!!”详解
2017/12/21 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
跟老齐学Python之Python文档
2014/10/10 Python
Python爬虫实例扒取2345天气预报
2018/03/04 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
python实现画循环圆
2019/11/23 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
Python日志处理模块logging用法解析
2020/05/19 Python
HTML5的hidden属性兼容老浏览器的方法
2014/04/23 HTML / CSS
CLR与IL分别是什么含义
2016/08/23 面试题
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2014/07/21 面试题
酒店应聘自荐信
2013/11/09 职场文书
财务出纳岗位职责
2014/02/03 职场文书
迎国庆演讲稿
2014/09/05 职场文书
教师党员整改措施
2014/10/24 职场文书
六年级学生评语大全
2014/12/26 职场文书
离婚案件上诉状
2015/05/23 职场文书
家庭贫困证明
2015/06/16 职场文书
工作简报范文
2015/07/21 职场文书
导游词之开封禹王台风景区
2019/12/02 职场文书
Java 定时任务技术趋势简介
2022/05/04 Java/Android
win10搭建配置ftp服务器的方法
2022/08/05 Servers
Java中的Kafka为什么性能这么快及4大核心详析
2022/09/23 Java/Android