Как получить расширение файла в PHP?

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

Первый способ годится для скриптов для PHP версии ниже 5.0. Вот он:

$ext = (($p = strrpos('.', $filename)) !== false) ? substr($filename,$p+1) : '';

Работает это так: функция strrpos() ищет точку в строке $filename начиная с конца. Если находит, возвращает её позицию в строке. Если не находит, то возвращает false. Далее используется тернарный оператор условия, который возвращает подстроку из имени файла, начинающуюся с символа, следующего за точкой. А в случае, если точка не найдена, возвращает пустую строку. Всё просто.

Второй случай годится для PHP5+, то есть для 95% сайтов. В PHP5 введена новая функция pathinfo(), которая позволяет раскладывать имена файлов и полные имена (т.е. файл с путём) на части. Вот так её можно использовать, чтобы вытянуть расширение:

$ext = pathinfo($filename, PATHINFO_EXTENSION);

Не городите огороды, не изобретайте велосипеды — всё уже придумано раньше. Просто пользуйтесь!

Отправить ответ

1 Комментарий на "Как получить расширение файла в PHP?"

Notify of
avatar
Sort by:   newest | oldest | most voted
Геннадий
Гость

Ваш совет относительно метода вызова скрипта php обработкой ссылки оказал мне большую услугу. Большое спасибо. Если посмотрите мой сайт — черкните пару строк в гостевой, буду благодарен. Еще раз спасибо за совет (я его на ответах гугл нашел).

wpDiscuz