如何在PHP5中列出给定目录及其子目录中的所有jpg文件?
我以为我可以为此写一个glob模式,但我无法理解。
thanx,b。
答案 0 :(得分:5)
您可以将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对象。
答案 1 :(得分:2)
没有为你做这件事。递归是这里的答案。查找目录并获取所有文件列表的函数。如果我发现任何子目录
,那么只过滤jpg然后调用它自己答案 2 :(得分:2)
希望我有时间做更多&测试,但这可以作为一个起点:它应该(未经测试)返回一个包含指定目录中所有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;
}