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

avatar
1 Цепочка комментария
0 Ответы по цепочке
0 Последователи
 
Популярнейший комментарий
Цепочка актуального комментария
1 Авторы комментариев
Геннадий Авторы недавних комментариев
  Подписаться  
новее старее большинство голосов
Уведомление о
Геннадий
Гость
Геннадий

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