PHP -获取目录内容、信息和输出数组



我正在处理以下内容,但对于如何将其输出感到困惑。

我有以下扫描目录内容,然后获得信息并将其保存为数组的命令:

   //SCAN THE DIRECTORY
    $directories = scandir($dir);
    $directinfo = array();
    foreach($directories as $directory){
        if ($directory === '.' or $directory === '..') continue;
        if(!stat($dir.'/'.$directory)){
        } else {
            $filestat = stat($dir.'/'.$directory);
            $directinfo[] = array(
                'name' => $directory,
                'modtime' => $filestat['mtime'],
                'size' => $filestat['size']
            );
        }
    }

然而,当试图输出它时,我只是得到了很多休息的单个字母。我显然在输出循环中遗漏了一些东西。

    foreach($directinfo as $dirInfo){
        foreach($dirInfo as $drInfo){
            for ($x=0; $x<=2; $x++) {
                <span>"".$drInfo[$x]."<br/></span>";
            }
        }
    }

非常感谢帮助。:)

你已经做了一切,只是删除你的for loop

并尝试执行以下操作-

       foreach($directinfo as $dirInfo){
            foreach($dirInfo as $key=>$drInfo){             
                echo "<span>".$key."=>".$drInfo."<br/></span>";             
            }
        }

我认为你处理的是一个2d数组,但把它当作一个3d数组。

什么
foreach($directinfo as $dirInfo){
    foreach($dirInfo as $drInfo){
        var_dump($drInfo);
    }
}

给你?

你正在构建一个数组,dirInfo.

foreach($dirInfo as $info) { 
 echo "<span>" . $info['name'] . "</span>";
}

试试这个函数。它将返回所有带有path.

的文件列表。
// to list the directory structure with all sub folders and files
function getFilesList($dir)
{
    $result = array();
    $root = scandir($dir);
    foreach($root as $value) {
        if($value === '.' || $value === '..') {
            continue;
        }
        if(is_file("$dir$value")) {
            $result[] = "$dir$value";
            continue;
        }
        if(is_dir("$dir$value")) {
            $result[] = "$dir$value/";
        }
        foreach(getFilesList("$dir$value/") as $value)
        {
            $result[] = $value;
        }
    }
    return $result;
}

相关内容

  • 没有找到相关文章

最新更新