is_dir无法识别目录。为什么?

时间:2010-04-19 10:11:49

标签: php directory readdir

我有这个功能:

if (is_dir($dir)) {
        //are we able to open it?
        if ($dh = opendir($dir)) {
            //Let's cycle
            while (($subdir = readdir($dh)) !== false) {
                if ($subdir != "." && $subdir != "..") {

                    echo $subdir;

                }
        }
}

返回:

directory1 , directory2, directory3 etc.. etc..

无论如何,如果我这样做:

    if (is_dir($dir)) {
        //are we able to open it?
        if ($dh = opendir($dir)) {
            //Let's cycle
            while (($subdir = readdir($dh)) !== false) {
                if ($subdir != "." && $subdir != "..") {

                    if (is_dir($subdir)) { 
                       echo $subdir;
                    }

                }
        }
}

它什么都不打印!

为什么会这样? 我正在运行带有Windows和XAMPP的脚本以进行测试。该目录实际上包含目录。

谢谢

3 个答案:

答案 0 :(得分:11)

is_dir($dir . '/' . $subdir)

答案 1 :(得分:4)

readdir()只给出文件/目录名,而不是完整路径(is_dir显然需要)。

在此处找到 - http://www.php.net/manual/en/function.is-dir.php#79622

答案 2 :(得分:1)

因为$dir是一个完整路径,因为$subdir只是一个路径片段