如何显示目录和所有子目录中的文件?

时间:2020-06-06 21:01:27

标签: php photo photo-gallery

当用户可以上传照片并选择类别时,我正在使用我的照片库。我的类别是images/中的子目录。如果用户未选择类别,则照片将存储在images/中。我想在图库中显示所有照片(来自所有类别和其他类别),但是现在我只显示了没有类别的照片。有人能帮我吗? 这是我的php代码的片段

 $fo=opendir("images");

        if ($dh = opendir("images")){

        $count = 1;

        while($file=readdir($fo)){


            if($file!="" && $file!="." && $file!=".."){
                        $image_path = "images/".$file;

                if(!is_dir($image_path)){
    ?>
                      <div class="gallery"> 

                <a href="<?= $image_path; ?>">
                <img src="<?= $image_path; ?>">

我试图列出所有子目录

$directories = glob("images" . '/*' , GLOB_ONLYDIR);

但是我不知道下一步该怎么做

1 个答案:

答案 0 :(得分:1)

您应该使用RecursiveDirectoryIterator,请参见https://www.php.net/manual/en/class.recursivedirectoryiterator.php

然后您可以执行以下操作:

$folder = "path to your folder";

$files = new RecursiveIteratorIterator(
            new RecursiveDirectoryIterator($folder, RecursiveDirectoryIterator::SKIP_DOTS),
            RecursiveIteratorIterator::CHILD_FIRST
        );

        foreach ($files as $fileinfo) {

            // fileinfo is an object, see documentation for info
            $path = $fileinfo->getRealPath();

        }