Получить расширение файла в РНР задача не сложная и способов ее решения существует масса.
Давайте попробуем рассмотреть несколько возможных вариантов.
$filename = 'имя файла';
// 1 способ
echo end(explode('.', $filename));
// 2 способ
echo array_pop(explode('.', $filename));
// 3 способ
echo substr(strrchr($filename, '.'), 1);
// 4 способ
echo substr($filename, strrpos($filename, '.') + 1);
// 5 способ
echo pathinfo($filename, PATHINFO_EXTENSION);
Сам использую пятый способ, так как он лишен многих недостатков первых четерёх вариантов.
Что касается скорости
Все варианты дают примерно одинаковый результат. Чтобы сравнить все возможные варинаты по скорости, заведём цикл на 70000 оборотов и замерим. В результате получим:
- Вариант 1 — 0.7333430 сек
- Вариант 2 — 0.7562270 сек
- Вариант 3 — 0.5981759 сек
- Вариант 4 — 0.711136 сек
- Вариант 5 — 0.6780031 сек
Источник: https://www.kobzarev.com/programming/get-the-file-extension/