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
微信公众平台天气预报功能开发
Jul 06 PHP
跟我学Laravel之快速入门
Oct 15 PHP
codeigniter中实现一次性加载多个view的方法
Mar 20 PHP
php bootstrap实现简单登录
Mar 08 PHP
Thinkphp单字母函数使用指南
May 08 PHP
PHP数据库编程之MySQL优化策略概述
Aug 16 PHP
PHP memcache在微信公众平台的应用方法示例
Sep 13 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
May 29 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
Jun 09 PHP
php微信开发之关注事件
Jun 14 PHP
PHP迭代器和生成器用法实例分析
Sep 28 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+js实现异步图片上传实例分享
2014/06/02 PHP
Symfony页面的基本创建实例详解
2015/01/26 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
PHP基于单例模式实现的mysql类
2016/01/09 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
Yii框架中使用PHPExcel的方法分析
2019/07/25 PHP
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
JS的get和set使用示例
2014/02/20 Javascript
jQuery实现tag便签去重效果的方法
2015/01/20 Javascript
javascript表格的渲染组件
2015/07/03 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
javascript基础语法学习笔记
2016/01/04 Javascript
JS库中的Particles.js在vue上的运用案例分析
2017/09/13 Javascript
vue-router实现组件间的跳转(参数传递)
2017/11/07 Javascript
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
JS计算输出100元钱买100只鸡问题的解决方法
2018/01/04 Javascript
js实现动态增加文件域表单功能
2018/10/22 Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
2019/01/03 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
2020/10/29 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
2020/11/03 Javascript
Python实现给文件添加内容及得到文件信息的方法
2015/05/28 Python
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
Pandas分组与排序的实现
2019/07/23 Python
使用python模拟高斯分布例子
2019/12/09 Python
【HTML5】Canvas绘制简单图片教程
2016/05/13 HTML / CSS
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
白色公司:The White Company
2017/10/11 全球购物
Europcar西班牙:全球汽车租赁领域的领导者
2018/09/17 全球购物
护理学毕业生求职信
2013/11/14 职场文书
高校十八大报告感想
2014/01/27 职场文书
环保项目建议书
2014/08/26 职场文书
毕业实习自我鉴定范文2014
2014/09/26 职场文书
小学六年级毕业感言
2015/07/30 职场文书
大学班长竞选稿
2015/11/20 职场文书
深入理解Vue的数据响应式
2021/05/15 Vue.js