我正在尝试列出所选目录中的所有文件夹名称。目前唯一的输出是“。”和“..”但我的代码目前旨在删除它们。除此之外,我的测试文件夹中有目录,但我的输出只是一个空白页。
以下是代码:
class diring {
private $target = '/Users/Matthew/Documents/MDCMS/public_html/templates';
private $dirs = array();
private $err = array();
function readdirs() {
if (is_dir($this->target)) {
if ($handle = opendir($this->target)) {
while (false !== ($item = readdir($handle))) {
if (is_dir($item) && $item != "." && $item != "..") {
echo $item;
}
}
closedir($handle);
}
} else {
$this->err[] = 'The directory you are trying to access does\'nt exist. ';
$this->errs();
}
}
function errs() {
$errors = $this->err;
if (!empty($errors)) {
foreach ($errors as $error) {
echo $error;
}
}
}
}
任何人都知道我缺少什么,通过文档查看这应该是我输出文件夹名称所需要做的全部。
由于
答案 0 :(得分:1)
更容易:
if(is_dir($this->target)) {
foreach(glob($this->target . '/*', GLOB_ONLYDIR) as $dir) {
echo basename($dir);
}
}
另一种方法,如果你想维护一个只有基本名的数组:
if(is_dir($this->target)) {
$dirs = array_map('basename', glob($this->target . '/*', GLOB_ONLYDIR));
foreach($dirs as $dir) {
echo $dir;
}
}