繁体   English   中英

PHP:从文件夹而不是子文件夹获取所有图像

[英]PHP: Get all images from a folder but not subfolder

我这里有一个代码,可将所有图像保存在包含子文件夹的文件夹中。 我该怎么办才能仅从文件夹而非子文件夹中获取图像?

$dirname = "media/images/iconized/";
$images = glob($dirname."*.png");
foreach($images as $image) {
echo '<img src="'.$image.'" /><br />';
} 
$dirname = "media/images/iconized/";
$images = glob($dirname."*.png");
foreach($images as $image) {
    if(!is_dir($image))
        echo '<img src="'.$image.'" /><br />';
} 

我使用目录迭代器和过滤器迭代器来获取特定扩展名的文件列表。 看下面的解决方案。 您可以使用递归目录迭代器来递归获取文件。

class FileExtFilter extends FilterIterator
{
    private $fileext;

    public function __construct(Iterator $iterator, $fileext)
    {
        parent::__construct($iterator);
        $this->fileext = $fileext;
    }

    public function accept()
    {
        $file = $this->getInnerIterator()->current();
        return preg_match("/\.({$this->fileext})$/", $file);
    }
}
function getFilteredFileList($dir, $ext)
{
    $retval = array();

    // add trailing slash if missing
    if(substr($dir, -1) != "/") $dir .= "/";

    // open directory for reading
    $d = new DirectoryIterator($dir) or die("getFilteredFileList: Failed opening directory $dir for reading");
    $iterator = new FileExtFilter($d, $ext);
    foreach($iterator as $fileinfo) {

        if($fileinfo->isDot()) continue;
        $retval[] = array(
            'name' => "{$dir}{$fileinfo}",
            'type' => ($fileinfo->getType() == "dir") ? "dir" : mime_content_type($fileinfo->getRealPath()),
            'size' => $fileinfo->getSize(),
            'lastmod' => $fileinfo->getMTime()
        );
    }

    return $retval;
}

$list = getFilteredFileList('directorypath', 'png|jpeg|pdf');

print_r($list);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM