【问题标题】:is_dir doesn't recognize directories. Why?is_dir 不识别目录。为什么?
【发布时间】:2010-04-19 10:11:49
【问题描述】:

我有这个功能:

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 运行脚本以进行测试。该目录实际上包含目录。

谢谢

【问题讨论】:

标签: php directory readdir


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2016-01-01
        • 2017-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-16
        • 1970-01-01
        • 2023-04-06
        • 1970-01-01
        相关资源
        最近更新 更多