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+mysql 实现身份验证代码
Mar 24 PHP
php学习之流程控制实现代码
Jun 09 PHP
php5.3 注意事项说明
Jul 01 PHP
php+js实现异步图片上传实例分享
Jun 02 PHP
php中ob_get_length缓冲与获取缓冲长度实例
Nov 20 PHP
PHP获取数组的键与值方法小结
Jun 13 PHP
php通过前序遍历树实现无需递归的无限极分类
Jul 10 PHP
PHP面向对象详解(三)
Dec 07 PHP
PHP开发实现微信退款功能示例
Nov 25 PHP
详解php命令注入攻击
Apr 06 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
Apr 06 PHP
php模拟post提交请求调用接口示例解析
Aug 07 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/10/09 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
php中使用preg_match_all匹配文章中的图片
2013/02/06 PHP
Apache实现Web Server负载均衡详解(不考虑Session版)
2013/07/05 PHP
php环境套包 dedeampz 伪静态设置示例
2014/03/26 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
使用jquery提交form表单并自定义action的方法
2016/05/25 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
2018/11/21 Javascript
在Vue项目中引入JQuery-ui插件的讲解
2019/01/27 jQuery
了解javascript中let和var及const关键字的区别
2019/05/24 Javascript
Vue toFixed保留两位小数的3种方式
2020/10/23 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
Python struct模块解析
2014/06/12 Python
Python命令行解析模块详解
2018/02/01 Python
解决Pycharm中import时无法识别自己写的程序方法
2018/05/18 Python
基于numpy中数组元素的切片复制方法
2018/11/15 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
python实现PCA降维的示例详解
2020/02/24 Python
部署Django到阿里云服务器教程示例
2020/06/03 Python
Python3.7安装pyaudio教程解析
2020/07/24 Python
Python 如何测试文件是否存在
2020/07/31 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
《小草和大树》教学反思
2014/02/16 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
2014年班务工作总结
2014/12/02 职场文书
2015元旦联欢晚会结束语
2014/12/14 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
《悲惨世界》:比天空更广阔的是人的心灵
2020/01/16 职场文书