PHP采用自定义函数实现遍历目录下所有文件的方法


Posted in PHP onAugust 19, 2014

目录的遍历是PHP程序设计中经常会用到的一个功能,很多PHP项目都有这一功能模块。今天本文就来实例解析一下PHP采用自定义函数实现遍历目录下所有文件的方法。具体方法如下:

方法一:使用readir()遍历目录

实现代码如下:

function listDir($dir)
{
  if(is_dir($dir))
  {
    if($handle = opendir($dir))
    {
      while($file = readdir($handle))
      {
        if($file != '.' && $file != '..')
        {
          if(is_dir($dir.DIRECTORY_SEPARATOR.$file))
          {
            echo '目录名:'.$dir.DIRECTORY_SEPARATOR.'<font color="red">'.$file.'</font><br />';
            listDir($dir.DIRECTORY_SEPARATOR.$file);
          }else{
            echo '文件名:'.$dir.DIRECTORY_SEPARATOR.$file.'<br />';
          }
        }
      }
    }
    closedir($handle);
  }else{
    echo '非有效目录!';
  }
}
listDir('./phpmyadmin');

方法二:使用dir()遍历目录

本例采用dir()函数遍历,执行成功时返回Directory类实例

function tree($dir)
{
  $mydir = dir($dir);
  while($file = $mydir->read())
  {
    if($file != '.' && $file != '..')
    {
      if(is_dir("$dir/$file"))
      {
        echo '目录名:'.$dir.DIRECTORY_SEPARATOR.'<font color="red">'.$file.'</font><br />';
        tree("$dir/$file");
      }else{
        echo '文件名:'.$dir.DIRECTORY_SEPARATOR.$file.'<br />';
      }
    }
  }
  $mydir->close();
}
tree('./phpmyadmin');

除此之外,还有很多实现目录遍历的方法,相信本文所述方法能够给大家的PHP程序设计带来一定帮助。

PHP 相关文章推荐
php simplexmlElement操作xml的命名空间实现代码
Jan 04 PHP
Admin generator, filters and I18n
Oct 06 PHP
使用PHP生成二维码的方法汇总
Jul 22 PHP
ThinkPHP模型详解
Jul 27 PHP
PHP+Ajax+JS实现多图上传
May 07 PHP
PHP单例模式是什么 php实现单例模式的方法
May 14 PHP
Yii控制器中filter过滤器用法分析
Jul 15 PHP
PHP中FTP相关函数小结
Jul 15 PHP
无需数据库在线投票调查php代码
Jul 20 PHP
360搜索引擎自动收录php改写方案
Apr 28 PHP
PHP 并发场景的几种解决方案
Jun 14 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
Oct 18 PHP
浅谈php函数serialize()与unserialize()的使用方法
Aug 19 #PHP
PHP将回调函数作用到给定数组单元的方法
Aug 19 #PHP
php实现文件下载代码分享
Aug 19 #PHP
PHP中array_map与array_column之间的关系分析
Aug 19 #PHP
phpword插件导出word文件时中文乱码问题处理方案
Aug 19 #PHP
PHP防止表单重复提交的几种常用方法汇总
Aug 19 #PHP
PHP中单引号与双引号的区别分析
Aug 19 #PHP
You might like
Php图像处理类代码分享
2012/01/19 PHP
PHP跨时区(UTC时间)应用解决方案
2013/01/11 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
php检索或者复制远程文件的方法
2015/03/13 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
如何实现iframe(嵌入式帧)的自适应高度
2006/07/26 Javascript
google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
2011/04/24 Javascript
js单向链表的具体实现实例
2013/06/21 Javascript
带左右箭头图片轮播的JS代码
2013/12/18 Javascript
jquery form 加载数据示例
2014/04/21 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
javascript正则表达式使用replace()替换手机号的方法
2015/01/19 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
关于微信中a链接无法跳转问题
2016/08/02 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
2016/08/23 Javascript
JavaScript原生节点操作小结
2017/01/17 Javascript
Javascript前端经典的面试题及答案
2017/03/14 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
2017/08/15 Javascript
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
JavaScript this在函数中的指向及实例详解
2019/10/14 Javascript
python中zip()方法应用实例分析
2016/04/16 Python
python日志logging模块使用方法分析
2019/05/23 Python
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
Python Flask上下文管理机制实例解析
2020/03/16 Python
Tensorflow加载Vgg预训练模型操作
2020/05/26 Python
python 装饰器的基本使用
2021/01/13 Python
资深财务管理人员自我评价
2013/09/22 职场文书
心得体会怎么写
2013/12/30 职场文书
12岁生日感言
2014/01/21 职场文书
工会工作先进事迹
2014/08/18 职场文书
国庆促销活动总结
2014/08/29 职场文书
学生检讨书怎么写
2014/10/09 职场文书
2015年电厂工作总结范文
2015/05/13 职场文书
丧事答谢词大全
2015/09/30 职场文书
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js