opendir() 函数打开一个目录句柄,可由 closedir(),readdir() 和 rewinddir() 使用。
若成功,则该函数返回一个目录流,否则返回 false 以及一个 error。可以通过在函数名前加上 "@" 来隐藏 error 的输出。
语法为 opendir(path,context)。
下面是一个例子:
<?php //打开 images 目录 $dir = opendir("bkjia"); //列出 images 目录中的文件 while (($file = readdir($dir)) !== false) { echo "filename: " . $file . "<br />"; } closedir($dir); ?>
程序输出:
filename: . filename: .. filename: cat.gif filename: dog.gif filename: food filename: horse.gif
这里把子目录和文件都输出了,现在只需要把子目录输出,可以用下面的函数实现:
<?php function getSubDirs($dir) { $subdirs = array(); if(!$dh = opendir($dir)) return $subdirs; $i = 0; while ($f = readdir($dh)) { if($f =='.' || $f =='..') continue; //如果只要子目录名, path = $f; //$path = $dir.'/'.$f; $path = $f; $subdirs[$i] = $path; $i++; } return $subdirs; } $arr = getSubDirs("tmp"); print_r($arr); ?>
程序运行结果为:
Array ( [0] => Hello [1] => NowaMagic )
这次可以实现需求了。