列出目录和子目录中的所有jpg文件
答
您可以使用RecursiveDirectoryIterator有filter:
class ImagesFilter extends FilterIterator
{
public function accept()
{
$file = $this->getInnerIterator()->current();
return preg_match('/\.jpe?g$/i', $file->getFilename());
}
}
$it = new RecursiveDirectoryIterator('/var/images');
$it = new ImagesFilter($it);
foreach ($it as $file)
{
// Use $file here...
}
$file
是SplFileInfo对象。
答
没有为你做。递归是这里的答案。一个在dir中查找并获取所有文件列表的函数。滤出唯一个JPG文件,然后调用自身,如果我发现任何子迪尔斯
答
希望我有时间做更多的&测试,但是这可以作为一个起点:它应该(未经测试)返回一个包含数组中的所有jpg/jpeg文件在指定的目录中。
function load_jpgs($dir){
$return = array();
if(is_dir($dir)){
if($handle = opendir($dir)){
while(readdir($handle)){
echo $file.'<hr>';
if(preg_match('/\.jpg$/',$file) || preg_match('/\.jpeg$/',$file)){
$return[] = $file;
}
}
closedir($handle);
return $return;
}
}
return false;
}
您可能想要为您的正则表达式添加`$`。 – Gumbo 2009-07-23 14:08:57
哎呀呀... 15个字符:| – Greg 2009-07-23 16:02:14