У меня есть папка с несколькими изображениями, но меня интересуют изображения с таким названием: "Images_123456_nature_XL.jpg, Images_458599_3d_L.jpg, Images_065455_animals_XL.jpg"
, Так что попробуйте glob
функционировать так:
$images = glob($value."/^Images_(\d+)_([a-zA-Z]+)_([A-Z]+).{jpg,png,gif}", GLOB_BRACE);
Но это не похоже на работу. Помогите с этим! Очень признателен.
Glob () не принимает регулярные выражения, он использует простые шаблоны, только заменяя * джокеры чем-нибудь, и? одним персонажем.
Вы можете попробовать что-то вроде:
$files = array_filter(glob('*.{jpg,png,gif}', GLOB_BRACE), function($file) {
return preg_match('/^Images_(\d+)_([a-zA-Z]+)_([A-Z]+)\.(jpg|png|gif)$/', basename($file));
});
Это не очень эффективно с точки зрения памяти (поскольку glob () вернет все файлы до того, как вы ее отфильтруете), но это работает, по крайней мере.
Других решений пока нет …