Как получить расширение файла в 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);

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

Подписаться
Уведомить о
guest
1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Геннадий
Геннадий
11 лет назад

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