找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1344|回复: 0
打印 上一主题 下一主题

PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结

[复制链接]

2500

主题

2513

帖子

7520

积分

论坛元老

Rank: 8Rank: 8

积分
7520
跳转到指定楼层
楼主
发表于 2018-2-14 05:52:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            在进行PHP编程时,需要对服务器某个目录下面的文件进行浏览,通常成为遍历目录。取得一个目录下的文件和子目录,就需要用到opendir()函数、readdir()函数、closedir()函数和rewinddir()函数。
①函数opendir()
函数opendir()用于打开指定目录,接受一个目录的路径及目录名作为参数,函数返回值为可供其他目录函数使用的目录句柄(资源类型)。如果该目录不存在或者没有访问权限,则返回FALSE。
②函数readdir()
函数readdir()用于读取指定目录,接受已经用opendir()函数打开的可操作目录句柄作为参数,函数返回当前目录指针位置的一个文件名,并将目录指针向后移动一位。当指针位于目录的结尾时,因为没有文件存在则返回FALSE。
③函数closedir()
函数closedir()关闭指定目录,接受已经用opendir()函数打开的可操作目录句柄作为参数。函数无返回值,运行后关闭打开的目录。
④函数rewinddir()
函数reweinddir()倒回目录句柄,接受已经用opendir()函数打开的可操作目录句柄作为参数。将目录指针重置目录到开始处,即倒回目录的开头。
下面用一个实例来说明以上几个函数的使用方法。注意,在使用该例子前请确保同意目录下有phpMyAdmin文件夹。代码如下所示:
[U]复制代码[/U] 代码如下:
目录'.$dirname.'下面的内容';
echo '[tr]';
echo '[td]文件名[/td][td]文件大小[/td][td]文件类型[/td][td]修改时间[/td]';

//使用readdir循环读取目录里的内容
while($file = readdir($dir_handle)){
//将将目录下的文件和当前目录连接起来,才能在程序中使用
$dirFile = $dirname."/".$file;

$bgcolor = $num+%2==0 ? '#FFFFFF' : '#CCCCCC'; //各行一种颜色
echo '[tr]';
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 '在'.$dirname.'目录下的子目录和文件共有'.$num.'个';
?>
上述程序首先打开一个目录指针,并对其进行遍历。遍历目录时,会包括“.”和“..”两个特殊的目录,如果不需要这俩个目录,可以将其屏蔽。当然显示细节会因为文件夹中内容的不同而有所不同。通过上例可见,在PHP中浏览文件夹中的内容也并不是一件多么复杂的事情。而且PHP还提供了一种面向对象的方式用于目录的遍历,通过使用“dir”类完成。不仅如此,PHP也可以按用户的要求检索目录下指定的内容,提供了glob()函数检索指定的目录。该函数最终返回一个包含检索结果的数组。
            
            
您可能感兴趣的文章:
  • php类的自动加载操作实例详解
  • PHP 闭包详解及实例代码
  • PHP类相关知识点实例总结
  • PHP实现QQ快速登录的方法
  • PHP快速排序quicksort实例详解
  • PHP二分查找算法示例【递归与非递归方法】
  • PHP的Json中文处理解决方案
  • 分享一个漂亮的php验证码类
  • php opendir()列出目录下所有文件的实例代码
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端