目录的遍历是PHP程序设计中经常会用到的一个功能,很多PHP项目都有这一功能模块。今天本文就来实例解析一下PHP采用自定义函数实现遍历目录下所有文件的方法。具体方法如下:
方法一:使用readir()遍历目录
实现代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
function listDir( $dir ) { if ( is_dir ( $dir )) { if ( $handle = opendir( $dir )) { while ( $file = readdir( $handle )) { if ( $file != '.' && $file != '..' ) { if ( is_dir ( $dir .DIRECTORY_SEPARATOR. $file )) { echo '目录名:' . $dir .DIRECTORY_SEPARATOR. '<font color="red">' . $file . '</font><br />' ; listDir( $dir .DIRECTORY_SEPARATOR. $file ); } else { echo '文件名:' . $dir .DIRECTORY_SEPARATOR. $file . '<br />' ; } } } } closedir ( $handle ); } else { echo '非有效目录!' ; } } listDir( './phpmyadmin' ); |
方法二:使用dir()遍历目录
本例采用dir()函数遍历,执行成功时返回Directory类实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
function tree( $dir ) { $mydir = dir( $dir ); while ( $file = $mydir ->read()) { if ( $file != '.' && $file != '..' ) { if ( is_dir ( "$dir/$file" )) { echo '目录名:' . $dir .DIRECTORY_SEPARATOR. '<font color="red">' . $file . '</font><br />' ; tree( "$dir/$file" ); } else { echo '文件名:' . $dir .DIRECTORY_SEPARATOR. $file . '<br />' ; } } } $mydir ->close(); } tree( './phpmyadmin' ); |
除此之外,还有很多实现目录遍历的方法,相信本文所述方法能够给大家的PHP程序设计带来一定帮助。