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 5.0对象模型深度探索之绑定
Sep 05 PHP
php如何调用webservice应用介绍
Nov 24 PHP
PHP中执行cmd命令的方法
Oct 11 PHP
php获取客户端电脑屏幕参数的方法
Jan 09 PHP
简单谈谈php中的unicode和utf8编码
Jun 10 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
Nov 27 PHP
大家都应该掌握的PHP关联数组使用技巧
Dec 25 PHP
php打包网站并在线压缩为zip
Feb 13 PHP
php简单实现批量上传图片的方法
May 09 PHP
Symfony查询方法实例小结
Jun 28 PHP
PHP递归实现汉诺塔问题的方法示例
Nov 25 PHP
PHP命名空间简单用法示例
Dec 28 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
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
2016/12/28 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
2017/09/30 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
JavaScript基础函数整理汇总
2015/01/30 Javascript
javascript实现 百度翻译 可折叠的分享按钮列表
2015/03/12 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
JS组件系列之JS组件封装过程详解
2017/04/28 Javascript
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
JS使用贪心算法解决找零问题示例
2017/11/27 Javascript
AngularJs 禁止模板缓存的方法
2017/11/28 Javascript
Vue项目pdf(base64)转图片遇到的问题及解决方法
2018/10/19 Javascript
微信小程序实现笑脸评分功能
2018/11/03 Javascript
详解vue-cli 脚手架 安装
2019/04/16 Javascript
javascript History对象原理解析
2020/02/17 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
vue3.0 项目搭建和使用流程
2021/03/04 Vue.js
Python 列表(List)操作方法详解
2014/03/11 Python
Python常用内置函数总结
2015/02/08 Python
python使用htmllib分析网页内容的方法
2015/05/08 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
Python编程之序列操作实例详解
2017/07/22 Python
将pandas.dataframe的数据写入到文件中的方法
2018/12/07 Python
python实现井字棋小游戏
2020/03/04 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
Python中对象的比较操作==和is区别详析
2021/02/12 Python
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
JAKO-O德国野酷台湾站:德国首屈一指的婴幼童用品品牌
2019/01/14 全球购物
数控机床专业自荐信
2014/05/19 职场文书
优秀毕业生求职信
2014/06/05 职场文书
党员自我评价2015
2015/03/03 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS