目录的遍历是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程序设计带来一定帮助。