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 相关文章推荐
怎样在UNIX系统下安装php3
Oct 09 PHP
PHP安装攻略:常见问题解答(一)
Oct 09 PHP
Phpbean路由转发的php代码
Jan 10 PHP
PHP扩展编写点滴 技巧收集
Mar 09 PHP
php生成短域名函数
Mar 23 PHP
PHP利用imagick生成组合缩略图
Feb 19 PHP
Laravel 的数据库迁移的方法
Jul 31 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
PHP实现小程序批量通知推送
Nov 27 PHP
PHP的mysqli_rollback()函数讲解
Jan 23 PHP
PHP常见加密函数用法示例【crypt与md5】
Jan 27 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导出oracle库的php代码
2009/04/20 PHP
PHP array 的加法操作代码
2010/07/24 PHP
JS重要知识点小结
2011/11/06 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
js获取视频时长代码
2014/04/10 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
2015/06/01 Javascript
关于微信上网页图片点击全屏放大效果
2016/12/19 Javascript
JavaScript数组复制详解
2017/02/02 Javascript
详解Vue2.0配置mint-ui踩过的那些坑
2018/04/23 Javascript
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
cdn模式下vue的基本用法详解
2018/10/07 Javascript
vue项目中全局引入1个.scss文件的问题解决
2019/08/01 Javascript
JavaScript的console命令使用实例
2019/12/03 Javascript
基于JavaScript判断两个对象内容是否相等
2020/01/10 Javascript
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
Python3基础之条件与循环控制实例解析
2014/08/13 Python
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
深入浅析Python中的yield关键字
2018/01/24 Python
解决pandas .to_excel不覆盖已有sheet的问题
2018/12/10 Python
python+mysql实现教务管理系统
2019/02/20 Python
Pyspark读取parquet数据过程解析
2020/03/27 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
Python pandas 列转行操作详解(类似hive中explode方法)
2020/05/18 Python
Python使用pickle进行序列化和反序列化的示例代码
2020/09/22 Python
Python random模块的使用示例
2020/10/10 Python
Madewell美德威尔美国官网:美国休闲服饰品牌
2016/11/25 全球购物
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
大学生创业计划书的用途
2014/01/08 职场文书
安全生产演讲稿
2014/05/09 职场文书
幼师辞职信怎么写
2015/02/27 职场文书
PyQt5 QThread倒计时功能的实现代码
2021/04/02 Python
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python