Справка Regex: сопоставление любого файла изображения, начинающегося с подчеркивания

В приведенном ниже описании загружаются все изображения, которые не начинаются с символа подчеркивания …

if (!is_dir($file) && preg_match("/^[^_].*\.(bmp|jpeg|gif|png|jpg)$/i", $file)) 

Мне нужно изменить его так, чтобы он загружал только изображения, которые НАЗАДАЮТ с подчеркиванием.

Solutions Collecting From Web of "Справка Regex: сопоставление любого файла изображения, начинающегося с подчеркивания"

Просто удалите отрицание в наборе символов: [^_] становится _ :

 if (!is_dir($file) && preg_match("/^_.*\.(bmp|jpeg|gif|png|jpg)$/i", $file)) 

Попробуйте glob() для сопоставления имен файлов с шаблоном, например

 glob('_*.{jpg,jpeg,gif,png,bmp}', GLOB_BRACE); 

чтобы получить все файлы, начинающиеся с подчеркивания, и заканчивающиеся на любом из расширений, заданных в фигурных скобках.

Кроме того, посмотрите на fnmatch() чтобы проверить имя файла по шаблону.

Кроме того, если вы хотите удостовериться, что изображения действительно являются изображениями, рассмотрите возможность проверки на MimeType вместо или в дополнение к расширению.