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 模拟登陆MSN并获得用户信息
May 16 PHP
PHP开发规范手册之PHP代码规范详解
Jan 13 PHP
基于php-fpm 参数的深入理解
Jun 03 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
Jun 24 PHP
PHP中include与require使用方法区别详解
Oct 19 PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
Apr 21 PHP
php获取文件后缀的9种方法
Mar 22 PHP
php根据年月获取当月天数及日期数组的方法
Nov 30 PHP
PHP实现随机数字、字母的验证码功能
Aug 01 PHP
PHP实现类似题库抽题效果
Aug 16 PHP
浅谈PHP匿名函数和闭包
Mar 08 PHP
PHPstorm激活码2020年5月13日亲测有效
Sep 17 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
用mysql内存表来代替php session的类
2009/02/01 PHP
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
php输出xml必须header的解决方法
2014/10/17 PHP
PHP简单验证码功能机制实例详解
2019/03/27 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
jQuery EasyUI NumberBox(数字框)的用法
2010/07/08 Javascript
Jquery练习之表单验证实现代码
2010/12/14 Javascript
xml转json的js代码
2012/08/28 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
2013/08/13 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
JavaScript 字符串常用操作小结(非常实用)
2016/11/30 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
layui文件上传实现代码
2017/05/20 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
2018/09/12 Javascript
vue3 源码解读之 time slicing的使用方法
2019/10/31 Javascript
JS原型prototype和__proto__用法实例分析
2020/03/14 Javascript
python使用Tkinter显示网络图片的方法
2015/04/24 Python
python 打印对象的所有属性值的方法
2016/09/11 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
linux环境下Django的安装配置详解
2019/07/22 Python
Python操作Jira库常用方法解析
2020/04/10 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
印尼在线旅游门户网站:NusaTrip
2019/11/01 全球购物
大学生入党推荐书范文
2014/05/17 职场文书
2014年“世界无车日”活动方案
2014/09/21 职场文书
2014年业务工作总结
2014/11/17 职场文书
成本会计岗位职责
2015/02/03 职场文书
500字作文之关于爸爸
2019/11/14 职场文书
PHP控制循环操作的时间
2021/04/01 PHP
Linux安装apache服务器的配置过程
2021/11/27 Servers
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server
微信小程序实现轮播图指示器
2022/06/25 Javascript