Как получить расширение файла в 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 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
1 Comment authors
Геннадий Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
Геннадий
Гость
Геннадий

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