函数名:list_dir
功能:返回存有所给目录中所有文件名的数组(包括子目录)。
说明:此函数用到了静态变量、函数的递归调用来实现,或可供大家参考。
其他:此函数调用了is_dir_ex来判断所给路径是否为目录,具体细节请参阅代码。
程序代码:
<?php
//判断所给路径是否为目录,代替is_dir函数。
function is_dir_ex($dirname)
{
$handle=opendir($dirname);
if(readdir($handle)=='.')
$result=true;
else
$result=false;
closedir($handle);
return $result;
}
//遍历目录
function list_dir($dirname)
{
if($dirname[strlen($dirname)-1]!='\\')
$dirname.='\\';
static $result_array=array(); //静态数组,保存函数返回值。
$handle=opendir($dirname);
while ($file = readdir($handle))
{
if($file=='.'||$file=='..')
continue;
if(is_dir_ex($dirname.$file))
list_dir($dirname.$file.'\\'); //如果是目录,递归调用。
else
//array_push($result_array,$dirname.$file); //如果是文件,存入数组。
$result_array[]=$dirname.$file;
}
closedir($handle);
return $result_array;
}
//测试程序,列出c:\php4\目录下所有文件
$array=list_dir('c:\\php4');
foreach($array as $value)
{
echo $value;
echo "<br>";
}
?>
|