[英]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.