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 相关文章推荐
在同一窗体中使用PHP来处理多个提交任务
Oct 09 PHP
高亮度显示php源代码
Oct 09 PHP
Mysql的GROUP_CONCAT()函数使用方法
Mar 28 PHP
php学习之简单计算器实现代码
Jun 09 PHP
浅析51个PHP处理字符串的函数
Aug 02 PHP
PHP随机生成随机个数的字母组合示例
Jan 14 PHP
PHP调用JAVA的WebService简单实例
Mar 11 PHP
php中通过DirectoryIterator删除整个目录的方法
Mar 13 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
Mar 07 PHP
php使用CutyCapt实现网页截图保存的方法
Oct 03 PHP
PHP检查端口是否可以被绑定的方法示例
Aug 09 PHP
Laravel登录失败次数限制的实现方法
Aug 26 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版(3)
2006/10/09 PHP
PHP中防止SQL注入实现代码
2011/02/19 PHP
php模块memcache和memcached区别分析
2011/06/14 PHP
PHP获取文件后缀名的三个函数
2012/10/15 PHP
PHP设计模式之代理模式的深入解析
2013/06/13 PHP
解析php常用image图像函数集
2013/06/24 PHP
php环境无法上传文件的解决方法
2014/04/30 PHP
使用PHP免费发送定时短信的实例
2016/10/24 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
jQuery验证Checkbox是否选中的代码 推荐
2011/09/04 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
基于JavaScript实现全屏透明遮罩div层锁屏效果
2016/01/26 Javascript
jQuery Easyui实现左右布局
2016/01/26 Javascript
分析js闭包引起的事件注册问题
2016/03/29 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
Vue学习笔记进阶篇之vue-router安装及使用方法
2017/07/19 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
python基础教程之序列详解
2014/08/29 Python
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
Python中内置数据类型list,tuple,dict,set的区别和用法
2015/12/14 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
浅谈Python基础—判断和循环
2019/03/22 Python
python实现本地批量ping多个IP的方法示例
2019/08/07 Python
python判断无向图环是否存在的示例
2019/11/22 Python
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
决定成败的关键——创业计划书
2014/01/24 职场文书
科级干部考察材料
2014/02/15 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
优秀团员事迹材料
2014/12/25 职场文书
党员评议自我评价
2015/03/03 职场文书
公司仓库管理制度
2015/08/04 职场文书
银行服务理念口号
2015/12/25 职场文书
创业计划书之冷饮店
2019/09/27 职场文书