Есть ли любой способ получить только изображения с расширениями jpeg
, png
, gif
и т.д. при использовании
$dir = '/tmp';
$files1 = scandir($dir);
Вы можете использовать glob
$images = glob('/tmp/*.{jpeg,gif,png}', GLOB_BRACE);
Если вам нужно, чтобы это было без учета регистра, вы можете использовать DirectoryIterator
в сочетании с RegexIterator
или передать результат scandir
в array_map
и использовать обратный вызов, который отфильтрует все нежелательные расширения. Будете ли вы использовать strpos
, fnmatch
или pathinfo
для получения расширения - решать вам.
Я бы пролистал файлы и посмотрел на их расширения:
$dir = '/tmp';
$dh = opendir($dir);
while (false !== ($fileName = readdir($dh))) {
$ext = substr($fileName, strrpos($fileName, '.') + 1);
if(in_array($ext, array("jpg","jpeg","png","gif")))
$files1[] = $fileName;
}
closedir($dh);
После этого вы можете просмотреть полученный массив и отбросить файлы, не соответствующие вашим критериям.
scandir
не имеет нужной вам функциональности.