PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结


Posted in PHP onNovember 18, 2014

在进行PHP编程时,需要对服务器某个目录下面的文件进行浏览,通常成为遍历目录。取得一个目录下的文件和子目录,就需要用到opendir()函数、readdir()函数、closedir()函数和rewinddir()函数。

①函数opendir()

函数opendir()用于打开指定目录,接受一个目录的路径及目录名作为参数,函数返回值为可供其他目录函数使用的目录句柄(资源类型)。如果该目录不存在或者没有访问权限,则返回FALSE。

②函数readdir()

函数readdir()用于读取指定目录,接受已经用opendir()函数打开的可操作目录句柄作为参数,函数返回当前目录指针位置的一个文件名,并将目录指针向后移动一位。当指针位于目录的结尾时,因为没有文件存在则返回FALSE。

③函数closedir()

函数closedir()关闭指定目录,接受已经用opendir()函数打开的可操作目录句柄作为参数。函数无返回值,运行后关闭打开的目录。

④函数rewinddir()

函数reweinddir()倒回目录句柄,接受已经用opendir()函数打开的可操作目录句柄作为参数。将目录指针重置目录到开始处,即倒回目录的开头。

下面用一个实例来说明以上几个函数的使用方法。注意,在使用该例子前请确保同意目录下有phpMyAdmin文件夹。代码如下所示:

<?php

$num = 0; //用来统计子目录和文件的个数

$dirname = 'phpMyAdmin'; //保存当前目录下用来便利的一个目录名

$dir_handle = opendir($dirname); //用opendir打开目录

 

//将遍历的目录和文件名使用表格格式输出

echo '<table border="0" align="center" width="600" cellspacing="0" cellpadding="0">';

echo '<caption><h2>目录'.$dirname.'下面的内容</h2></caption>';

echo '<tr align="left" bgcolor="#cccccc">';

echo '<th>文件名</th><th>文件大小</th><th>文件类型</th><th>修改时间</th>';

 

//使用readdir循环读取目录里的内容

while($file = readdir($dir_handle)){

//将将目录下的文件和当前目录连接起来,才能在程序中使用

$dirFile = $dirname."/".$file;

 

$bgcolor = $num+%2==0 ? '#FFFFFF' : '#CCCCCC'; //各行一种颜色

echo '<tr bgcolor='.$bgcolor.'>';

echo '<td>'.filesize($dirFile).'</td>'; //显示文件名

echo '<td>'.filetype($dirFile).'</td>'; //显示文件大小

echo '<td>'.date("Y/n/t",filemtime($dirFile)).'</td>'; //格式化显示文件修改时间

echo '</tr>';

}

 

echo '</table>'; 

closedir($dir_handle); //关闭文件操作句柄

echo '在<b>'.$dirname.'</b>目录下的子目录和文件共有<b>'.$num.'</b>个';

?>

上述程序首先打开一个目录指针,并对其进行遍历。遍历目录时,会包括“.”和“..”两个特殊的目录,如果不需要这俩个目录,可以将其屏蔽。当然显示细节会因为文件夹中内容的不同而有所不同。通过上例可见,在PHP中浏览文件夹中的内容也并不是一件多么复杂的事情。而且PHP还提供了一种面向对象的方式用于目录的遍历,通过使用“dir”类完成。不仅如此,PHP也可以按用户的要求检索目录下指定的内容,提供了glob()函数检索指定的目录。该函数最终返回一个包含检索结果的数组。

PHP 相关文章推荐
基于mysql的论坛(6)
Oct 09 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
Oct 29 PHP
PHP防止跨域提交表单
Nov 01 PHP
PHP学习笔记(一) 简单了解PHP
Aug 04 PHP
php自动给网址加上链接的方法
Jun 02 PHP
PHP检测用户语言的方法
Jun 15 PHP
ThinkPHP3.2.1图片验证码实现方法
Aug 19 PHP
php文件类型MIME对照表(比较全)
Oct 07 PHP
YII分模块加载路由的实现方法
Oct 01 PHP
浅谈php://filter的妙用
Mar 05 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
Oct 12 PHP
php中array_fill函数的实例用法
Mar 02 PHP
PHP统计目录大小的自定义函数分享
Nov 18 #PHP
php创建和删除目录函数介绍和递归删除目录函数分享
Nov 18 #PHP
PHP递归复制、移动目录的自定义函数分享
Nov 18 #PHP
PHP打开和关闭文件操作函数总结
Nov 18 #PHP
PHP文件读写操作相关函数总结
Nov 18 #PHP
PHP中通过fopen()函数访问远程文件示例
Nov 18 #PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
Nov 18 #PHP
You might like
php模块memcache和memcached区别分析
2011/06/14 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
2015/05/11 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
2015/08/31 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
2015/12/24 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
用js统计用户下载网页所需时间的脚本
2008/10/15 Javascript
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
2010/03/02 Javascript
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
JS常见面试试题总结【去重、遍历、闭包、继承等】
2019/08/27 Javascript
vue下canvas裁剪图片实例讲解
2020/04/16 Javascript
js实现电灯开关效果
2021/01/19 Javascript
python实现微信小程序自动回复
2018/09/10 Python
小白入门篇使用Python搭建点击率预估模型
2018/10/12 Python
python实现微信自动回复及批量添加好友功能
2019/07/03 Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
2020/07/01 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
HTML5 Canvas 实现K线图的示例代码
2019/12/23 HTML / CSS
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
美国演唱会订票网站:Ticketmaster美国
2017/10/05 全球购物
GANT英国官方网上商店:甘特衬衫
2018/02/06 全球购物
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
庆元旦广播稿
2014/02/10 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书
最感人的道歉情书
2015/05/12 职场文书
三八节活动主持词
2015/07/04 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers
python利用while求100内的整数和方式
2021/11/07 Python
vue+echarts实现多条折线图
2022/03/21 Vue.js
GoFrame基于性能测试得知grpool使用场景
2022/06/21 Golang