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 相关文章推荐
VML绘图板②脚本--VMLgraph.js、XMLtool.js
Oct 09 PHP
PHP+APACHE实现用户论证的方法
Oct 09 PHP
php生成短网址示例
May 05 PHP
ThinkPHP框架设计及扩展详解
Nov 25 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
Mar 13 PHP
php生成圆角图片的方法
Apr 07 PHP
PHP生成静态HTML页面最简单方法示例
Apr 09 PHP
CI(CodeIgniter)模型用法实例分析
Jan 20 PHP
PHP与服务器文件系统的简单交互
Oct 21 PHP
PHP实现批量删除(封装)
Apr 28 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
Dec 26 PHP
关于laravel模板中生成URL的几种模式总结
Oct 18 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
是否存在第一台收音机的说法
2021/03/01 无线电
php去除数组中重复数据
2014/11/18 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
thinkPHP实现表单自动验证
2014/12/24 PHP
PHP封装CURL扩展类实例
2015/07/28 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
基于jquery的跨域调用文件
2010/11/19 Javascript
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
关于js类的定义
2011/06/28 Javascript
javascript动态加载二
2012/08/22 Javascript
实用的Jquery选项卡TAB示例代码
2013/08/28 Javascript
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
JavaScript获取表单enctype属性的方法
2015/04/02 Javascript
百度地图给map添加右键菜单(判断是否为marker)
2016/03/04 Javascript
AngularJS 实现JavaScript 动画效果详解
2016/09/08 Javascript
总结4个方面优化Vue项目
2019/02/11 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
[06:24]DOTA2亚洲邀请赛小组赛第三日 TOP10精彩集锦
2015/02/01 DOTA
在Django中限制已登录用户的访问的方法
2015/07/23 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
解决Python3 控制台输出InsecureRequestWarning问题
2019/07/15 Python
利用python-pypcap抓取带VLAN标签的数据包方法
2019/07/23 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
python 19个值得学习的编程技巧
2020/08/15 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
阿里巴巴的Oracle DBA笔试题答案-SQL tuning类
2016/04/03 面试题
护士思想汇报
2014/01/12 职场文书
加拿大留学自荐信
2014/01/28 职场文书
网络宣传方案
2014/03/15 职场文书
商场促销活动总结
2014/07/10 职场文书
2015年学校减负工作总结
2015/05/19 职场文书
护士业务学习心得体会
2016/01/25 职场文书
python绘制箱型图
2021/04/27 Python
梳理总结Python开发中需要摒弃的18个坏习惯
2022/01/22 Python