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中在数据库中保存Checkbox数据(1)
Oct 09 PHP
建立动态的WML站点(三)
Oct 09 PHP
PHP下通过系统信号量加锁方式获取递增序列ID
Sep 25 PHP
使用NetBeans + Xdebug调试PHP程序的方法
Apr 12 PHP
解析php类的注册与自动加载
Jul 05 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
Jun 22 PHP
php实现在站点里面添加邮件发送的功能
Apr 28 PHP
Smarty高级应用之缓存操作技巧分析
May 14 PHP
php字符集转换
Jan 23 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
Laravel5.7 Eloquent ORM快速入门详解
Apr 12 PHP
Codeigniter里的无刷新上传的实现代码
Apr 14 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将向Java靠拢
2006/10/09 PHP
4.与数据库的连接
2006/10/09 PHP
通过PHP修改Linux或Unix口令的方法分享
2012/01/30 PHP
解析PHP中的unset究竟会不会释放内存
2013/07/18 PHP
CI框架集成Smarty的方法分析
2016/05/17 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
Ajax+Jpgraph实现的动态折线图功能示例
2019/02/11 PHP
JS与框架页的操作代码
2010/01/17 Javascript
javascript 学习笔记(onchange等)
2010/11/14 Javascript
jquery解析xml字符串简单示例
2014/04/11 Javascript
js创建一个input数组并绑定click事件的方法
2014/06/12 Javascript
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
jquery+ajaxform+springboot控件实现数据更新功能
2018/01/22 jQuery
vue.js2.0点击获取自己的属性和jquery方法
2018/02/23 jQuery
vuex的module模块用法示例
2018/11/12 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
2019/11/13 Javascript
解决 window.onload 被覆盖的问题方法
2020/01/14 Javascript
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
Python设置Socket代理及实现远程摄像头控制的例子
2015/11/13 Python
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
python 搭建简单的http server,可直接post文件的实例
2019/01/03 Python
python解析含有重复key的json方法
2019/01/22 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
白俄罗斯大卖场:21vek.by
2019/07/25 全球购物
阿联酋彩妆品牌:OUD MILANO
2019/10/06 全球购物
思想政治自我鉴定
2013/10/06 职场文书
药学专业个人自我评价
2013/11/11 职场文书
大专毕业生自我鉴定
2013/11/21 职场文书
给学校的建议书范文
2014/05/15 职场文书
总经理任命书范本
2014/06/05 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
三十年同学聚会感言
2015/07/30 职场文书
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
2021/10/16 HTML / CSS