仅在另一个目录中读取目录

时间:2014-04-16 15:52:55

标签: php

我正在尝试列出所选目录中的所有文件夹名称。目前唯一的输出是“。”和“..”但我的代码目前旨在删除它们。除此之外,我的测试文件夹中有目录,但我的输出只是一个空白页。

以下是代码:

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;
            }
        }

    }




}

任何人都知道我缺少什么,通过文档查看这应该是我输出文件夹名称所需要做的全部。

由于

1 个答案:

答案 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;
    }
}