当前位置:Gxlcms > PHP教程 > 文件夹的问题

文件夹的问题

时间:2021-07-01 10:21:17 帮助过:16人阅读

为什么明明好几个文件夹呢 只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);
        }
    }

回复内容:

为什么明明好几个文件夹呢 只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);
        }
    }

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的手册,而不是书或者视频,或者顺序问题,要先看了手册再看书或者视频。这个东西在手册上有标准的例子。

人气教程排行