Справка по регулярному выражению: сопоставить любой файл изображения, начинающийся с подчеркивания - PullRequest
2 голосов
/ 26 января 2010

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

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

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

Ответы [ 2 ]

7 голосов
/ 26 января 2010

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

if (!is_dir($file) && preg_match("/^_.*\.(bmp|jpeg|gif|png|jpg)$/i", $file)) 
4 голосов
/ 26 января 2010

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...