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面向对象编程快速入门
Oct 09 PHP
用PHP生成静态HTML速度快类库
Mar 18 PHP
php之字符串变相相减的代码
Mar 19 PHP
ASP和PHP都是可以删除自身的
Apr 09 PHP
php生成xml时添加CDATA标签的方法
Oct 17 PHP
Yii入门教程之Yii安装及hello world
Nov 25 PHP
PHP中is_file()函数使用指南
May 08 PHP
PHP获取当前日期和时间及格式化方法参数
May 11 PHP
Zend Framework教程之Resource Autoloading用法实例
Mar 08 PHP
深入浅出讲解:php的socket通信原理
Dec 03 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
Laravel5.5 动态切换多语言的操作方式
Oct 25 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 addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
RR vs IO BO3 第一场2.13
2021/03/10 DOTA
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
jQuery获取对象简单实现方法小结
2014/10/30 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
JavaScript使用Range调色及透明度实例
2016/09/25 Javascript
js实现简单的获取验证码按钮效果
2017/03/03 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
详解webpack 入门与解析
2018/04/09 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
2018/09/28 Javascript
React Native中Mobx的使用方法详解
2018/12/04 Javascript
JS使用Dijkstra算法求解最短路径
2019/01/17 Javascript
javascript面向对象三大特征之封装实例详解
2019/07/24 Javascript
[01:19:34]2014 DOTA2国际邀请赛中国区预选赛 New Element VS Dream time
2014/05/22 DOTA
Python闭包的两个注意事项(推荐)
2017/03/20 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
2018/07/18 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
2019/08/22 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
2020/04/19 Python
Python抓包并解析json爬虫的完整实例代码
2020/11/03 Python
为智能设备设计个性化保护套网站:caseable
2017/01/05 全球购物
Merchant 1948澳大利亚:新西兰领先的鞋类和靴子供应商
2018/03/24 全球购物
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
do you have any Best Practice for testing
2016/06/04 面试题
年度考核自我鉴定
2013/11/09 职场文书
课程设计心得体会
2013/12/28 职场文书
区三好学生主要事迹
2014/01/30 职场文书
聚美优品励志广告词
2014/03/14 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
幼儿园中班教学反思
2016/03/03 职场文书
2016年学校“3.12”植树节活动总结
2016/03/16 职场文书
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python