Расширение файла средствами PHP
Получить расширение файла — не самая сложная задача. Но подходов к ее решению может быть несколько. Давайте попробуем рассмотреть несколько возможных вариантов и понять принципы их работы.
Считаете, что вопрос пустяковый и все тут просто как 2 пальца? Может быть, только недавно мне встретилась занятная бредострочка с толстенным регулярным выражением и все для того, что бы просто получить несколько символов в конце строки после последней точки. Зачем? Итак, начнем с пяти наиболее распространенных способов. Без использования регулярных выражений (только не подумайте, что я считаю их злом). Писать буду как просто и доступно, это не научная статья, а авторская заметка.
Способ первый
Способ второй
- function getExtension2($filename) {
- $path_info = pathinfo($filename);
- return $path_info['extension'];
- }
Способ третийВ данном случае strrpos() возвращает позицию последней точки в строке, а substr() вырезает все символы, начиная с полученной ранее позиции точки, до конца строки. Что бы избавится от самой точки в полученной подстроке, мы увеличивает начало старта на одно смещение вправо (+1).
Способ четвертыйРаботает следующим образом: strrchr() возвращает участок строки, следующий за указанным параметром (точкой в нашем случае), после чего substr() отрезает первый символ — точку.
Способ пятыйДанный способ очень похож на первый. array_pop() — выталкивает элемент в конце массива, end() — устанавливает внутренний указатель массива на последний элемент.
Что работает быстрее? Да, в прочем, на практике результаты выполнения и всех способов примерно одинаковые. Для подтверждения своих догадок провел небольшой тест, прогнав в цикле каждый из вариантов по 50000 раз:
Способ #1: 0.6777439 сек.
Способ #2: 0.5664740 сек.
Способ #3: 0.6604638 сек.
Способ #4: 0.4782789 сек.
Способ #5: 0.6564250 сек.
Какой использовать? Решать вам.