PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()
《:PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结》要点: 在进行PHP编程时,需要对服务器某个目录下面的文件进行浏览,通常成为遍历目录.取得一个目录下的文件和子目录,就需要用到opendir()函数、readdir()函数、closedir()函数和rewinddir()函数.PHP实例 ①函数opendir()PHP实例 函数opendir()用于打开指定目录,接受一个目录的路径及目录名作为参数,函数返回值为可供其他目录函数使用的目录句柄(资源类型).如果该目录不存在或者没有拜访权限,则返回FALSE.PHP实例 ②函数readdir()PHP实例 函数readdir()用于读取指定目录,接受已经用opendir()函数打开的可操作目录句柄作为参数,函数返回当前目录指针位置的一个文件名,并将目录指针向后移动一位.当指针位于目录的结尾时,因为没有文件存在则返回FALSE.PHP实例 ③函数closedir()PHP实例 函数closedir()关闭指定目录,接受已经用opendir()函数打开的可操作目录句柄作为参数.函数无返回值,运行后关闭打开的目录.PHP实例 ④函数rewinddir()PHP实例 函数reweinddir()倒回目录句柄,接受已经用opendir()函数打开的可操作目录句柄作为参数.将目录指针重置目录到开始处,即倒回目录的开头.PHP实例 下面用一个实例来说明以上几个函数的使用办法.注意,在使用该例子前请确保同意目录下有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遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结》是否对您有启发,欢迎查看更多与《:PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |