扫描文件夹的文件夹,并获取文件夹的第一个图像

时间:2015-03-13 09:01:32

标签: php

我在一个文件夹中有多个文件夹。我正在尝试制作一种类型的画廊。

我想扫描其中所有文件夹的第一个文件夹(FolderA)。

接下来我要做的是获取该文件夹的第一张照片,忽略所有不是图像的内容。

需要预览每个文件夹中的第一张图片。

2 个答案:

答案 0 :(得分:0)

RecursiveDirectoryIterator可以帮助您迭代目录树。

$path = '/path/to/FolderA';

$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path));
$firsts   = array();
foreach($iterator as $name => $item){
    if (!$item->isDir()) {
        if (!isset($firsts[$item->getPath()]) && exif_imagetype($item->getRealPath())) {
            $firsts[$item->getPath()] = $item->getRealPath();
        }
    }
}

var_dump($firsts);

答案 1 :(得分:0)

我做了一些额外的研究,以下工作对我有用:

foreach(glob('cms/images/realisaties/*', GLOB_ONLYDIR) as $dir) {
                                    $dirname = basename($dir);

                                    $mappen[] = $dirname;
                                }

                                    foreach($mappen as $map){

                                    $search_dir = "cms/images/realisaties/".$map;
                                       $images = glob("$search_dir/*");
                                       sort($images);


                                       if (count($images) > 0) { 
                                           $img = $images[0]; 




                                       echo '

                                                <!--product item-->
                                                <div class="product_item hit w_xs_full">
                                                    <figure class="r_corners photoframe type_2 t_align_c tr_all_hover shadow relative">
                                                        <!--product preview-->
                                                        <a href="realisaties/40-realisaties/'.$map.'" class="d_block relative wrapper pp_wrap m_bottom_15" >
                                                            <img src="'.$img.'" class="tr_all_hover" alt="0" style="max-height:242px">
                                                        </a>
                                                        <!--description and price of product-->
                                                        <figcaption>
                                                            <h5 class="m_bottom_10"><a href="realisaties/40-realisaties/'.$map.'" class="color_dark">'.ucfirst($map).'</a></h5>
                                                            <a href="realisaties/40-realisaties/'.$map.'"><button class="button_type_12 bg_scheme_color r_corners tr_all_hover color_light mw_0 m_bottom_15">Bekijk</button></a>
                                                        </figcaption>
                                                    </figure>
                                                </div>

                                       ';

                                         } else {
                                           // possibly display a placeholder image?
                                       }

                                     }
                            }

包含具有图像的文件夹的文件夹是&#34; realisaties&#34;。有了GLOB,我首先介绍了它们。之后,我将所有文件夹名称放在一个数组中。

使用该数组我做了另一个循环。我再次使用glob来查看该文件夹中的内容。之后,我对图像进行了排序,并将预览图像设置为最后添加的图像。