Получить расширение файла в PHP

При работе с файлами в любом языке программирования, возникает вопрос: как узнать расширение из произвольной строки с именем файла? Для этого я сделал простую и быструю функцию на PHP, которую использую во всех своих проектах. Возникнут вопросы по этой статье - оставляйте свои комментарии, или пишите мне со страницы Контакты.

PHP - расширение файла из строки

Автор статьи: volego

2018-01-23 14:19:12

Одна из функций, которую я использую практически в каждом своём проекте, где нужен PHP - определение расширения файла из привольной строки с его именем. Код этой функции следующий:

   
//у функции один параметр - произвольное имя файла, можно с полным путём
function getFileExt($filename) {
   //получаем информацию о файле в ассоциативный массив
   $path_info = pathinfo($filename);
   //если информация есть
   if(isset($path_info)){
      //возвращаем расширение в строчном формате: txt, doc, png и т.п.
      return strtolower($path_info['extension']);
   }else{
      //иначе возвращаем пустую строку, или что-то своё
      return "";
   }
}

Проведём тестирование нашей функции на реальных примерах:

print getFileExt("fiLe.eXT");

От имени файла fiLe.eXT вернётся ext

print getFileExt("dir/file.ext");

От имени файла с произвольным путём dir/file.ext вернётся ext

print getFileExt("file");

От имени файла без расширения file вернётся пустая строка

print getFileExt("root/dir.dir/file.ext");

От имени файла в пути к которому тоже есть точки root/dir.dir/file.ext вернётся ext

print getFileExt("/dir.dir/file");

От имени файла в пути к которому тоже есть точки, а сам файл без расширения /dir.dir/file вернётся пустая строка

Заключение:

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