用php遍历输出父目录下的所有子目录的方法从网上找到了2种,与大家分享一下,不过有个问题,只能遍历当前目录下面的目录。
方法一:
//php获取当前目录下所有的子目录
<?php
$dirs = listdir("你要遍历输出的目录名");
foreach($dirs as $dir){
echo $dir.'<br>';
}
function listdir($dir){
if ($handle = opendir($dir)){
$output = array();
while (false !== ($item = readdir($handle))){
if (is_dir($dir.'/'.$item) and $item != "." and $item != ".."){
$output[] = $dir.'/'.$item;
$output = array_merge($output, ListDescendantDirectories($dir.'/'.$item));
}
}
closedir($handle);
return $output;
}else{
return false;
}
}function ListDescendantDirectories($dir)
{
if ($handle = opendir($dir))
{
$output = array();
while (false !== ($item = readdir($handle)))
{
if (is_dir($dir.'/'.$item) and $item != "." and $item != "..")
{
$output[] = $dir.'/'.$item;
$output = array_merge($output, ListDescendantDirectories($dir.'/'.$item));
}
}
closedir($handle);
return $output;
}
else
{
return false;
}
}
?>方法二:
//遍历当前目录
<?php
$dir="你要遍历输出的目录名";
function myscandir($dir){
set_time_limit(5);
foreach(scandir($dir) as $v){ //scandir() 遍历指定目录,只会遍历一级目录
if(is_dir($dir.'/'.$v)){
if($v == '.' || $v=='..') continue;
myscandir($dir.'/'.$v);
}
echo $v.'<br />';
}
}
myscandir($dir);
?>2015年12月19日补充:
<?php //遍历当前目录
function get_dir_scandir(){
$tree = array();
foreach(scandir('./') as $single){
echo $single."<br/>\r\n";
}
}
get_dir_scandir();
?>能且仅能遍历当前目前下所有的文件及文件夹。


One comment