Я бы дал PHP DirectoryIterator вращение.
Это не проверенный псевдокод, но он должен работать примерно так:
function scanDirectoryForImages($dirPath)
{
$images = array();
$dirIter = new DirectoryIterator($dirPath);
foreach($dirIter as $fileInfo)
{
if($fileInfo->isDot())
continue;
// If it's a directory, scan it recursively
elseif($fileInfo->isDir())
{
$images = array_merge(
$images, scanDirectoryForImages($fileInfo->getPath())
);
}
elseif($fileInfo->isFile())
{
/* This works only for JPEGs, oviously, but feel free to add other
extensions */
if(strpos($fileInfo->getFilename(), '.jpg') !== FALSE)
{
$images[] = $fileInfo->getPathname();
}
}
}
return $images;
}
Пожалуйста, не подавайте на меня в суд, если это не сработает, это действительно отчасти так, но использование такой функции было бы самым элегантным способом решения вашей проблемы, имхо.
// edit: Да, это в основном то же самое, на что указал огонь.