文件夹的问题

图片描述

图片描述

为什么明明好几个文件夹呢 只echo出来一个a文件夹呢?而且a前面还有三个点 这是为什么?

    $dir = "upload/"; 
    if (is_dir($dir)){
        if ($dh = opendir($dir)){
        while (($file = readdir($dh))!= false){
            if(is_dir($file)) {
              echo $file;
            }
        }
        closedir($dh);
        }
    }
阅读 1.5k
1 个回答

is_dir($file)的用法不对。

也许你想遍历 e:/www/project/public/upload, 但是$dir = "upload" 不一定你想要的地址。一般这里都是结合魔术变量处理的。例如

$base = __DIR__;
$dir = $base . '/upload';
echo $dir; //看看是不是这个目录
// if (is_dir($dir)) <- 这个判断没用,你自己要求遍历upload的,还检查一遍,不相信自己?如果要处理的话也应该这样做
if (! is_dir($dir)) {
    //创建这个目录
}
$dh = opendir($dir);
while($file = readdir($dh)) {
    if ($file === '.' || $file === '..') continue; //理由自己搜索,太基础了
    if (is_dir($dir . '/' . $file)) { //要使用完整路径
        echo $file;
    }
}

建议多看一下PHP的手册,而不是书或者视频,或者顺序问题,要先看了手册再看书或者视频。这个东西在手册上有标准的例子。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题