Регулярное выражение для поиска расширения файла
Задача выбрать только те файлы у которых расширение заканчивается на имяфайла.pdf или имяфайла.djvu
Для PHP лучше использовать функцию регулярного выражения preg_match
поиск будет выглядеть так:
Это выражение вернет 1 или true если файл подходит под это условие.
с помощью этой регулярки мы берем имя файла из переменной $file и смотрим на что заканчивается эта строка (символ $ в регулярке). В круглых скобках у нас условие ИЛИ (значок |) и два расширения файлов, знак точка заэкранирован, т.к. точка это спецсимвол.
Если записать регулярку в двух скобках (\.pdf)|(\.djvu) то такая конструкция неверна, так как она будет искать файлы которые должны выглядеть как то так: filename.exe.pdf и соответсвенно если точка одна в имени файла, то вы никогда этот файл не пропустите.
Для PHP лучше использовать функцию регулярного выражения preg_match
поиск будет выглядеть так:
preg_match ('~(\.pdf|\.djvu)$~',$file)
Это выражение вернет 1 или true если файл подходит под это условие.
с помощью этой регулярки мы берем имя файла из переменной $file и смотрим на что заканчивается эта строка (символ $ в регулярке). В круглых скобках у нас условие ИЛИ (значок |) и два расширения файлов, знак точка заэкранирован, т.к. точка это спецсимвол.
Если записать регулярку в двух скобках (\.pdf)|(\.djvu) то такая конструкция неверна, так как она будет искать файлы которые должны выглядеть как то так: filename.exe.pdf и соответсвенно если точка одна в имени файла, то вы никогда этот файл не пропустите.
Оставить свой ответ: