我这里有一个代码,可以将所有图像放在包含子文件夹的文件夹中。如何才能从文件夹而不是子文件夹中获取图像?
quest. put("Treasure",JSONObject.NULL)
答案 0 :(得分:3)
$dirname = "media/images/iconized/";
$images = glob($dirname."*.png");
foreach($images as $image) {
if(!is_dir($image))
echo '<img src="'.$image.'" /><br />';
}
答案 1 :(得分:1)
我使用带有过滤器迭代器的目录迭代器来获取特定扩展名的文件列表。看看下面的解决方案。您可以使用recursivedirectory迭代器以递归方式获取文件。
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);