Як отримати розширення файлу - PHP
Колеги всім привіт.
У сьогоднішній статті ми поговоримо про те, як можна в PHP визначити розширення файлу.
У вас у розробці дуже часто виникатиме завдання отримання розширення файлу наприклад при завантаженні файлу на сервер. При збереженні файлу на сервері є так само дуже часто завдання зберігати файл не з вихідним ім'ям, а вказати в якості імені файлу унікальне значення щоб ім'я файлу не співпадало з іншими файлами на сервері.
Для вирішення цього завдання існує дуже багато різних варіантів, і я вам їх покажу. Як приклади я показуватиму всі дії на трьох файлах, перший файл це буде файлу з розширенням .txt, другий буде зображення з розширенням .png і третій варіант теж буде зображення, але з розширенням .jpeg.
Для зручності я використовуватиму змінні в яких будуть знаходитися імена файлів з якими ми будемо працювати і виходити їх розширення. Ще я створив функцію під назвою get_file_extension, в неї я поміщатиму код, який виводитиме розширення файлу в консоль.
У першому варіанті отримання розширення файлу ми будемо використовувати функції mb_strtolower, mb_substr. Функція mb_strtolower приймає як параметр рядок і переводить усі символи цього рядка в нижній регістр. Друга функція mb_substr приймає теж рядок і повертає частину рядка.
php> mb_strtolower(mb_substr(mb_strrchr($file_name, '.'), 1));
Другий варіант - це використовувати функцію pathinfo. Функція pathinfo повертає інформацію про файл у вигляді масиву таку як filename, basename, extension, dirname. Нам вся ця інформація зараз не важлива, ми хочемо отримати тільки розширення, для цього ми другим параметром можемо передати спеціальний прапор PATHINFO_EXTENSION які вказує на те щоб нам функція повернула тільки розширення файлу у вигляді рядка, а не всю інформацію у вигляді масиву.
php> pathinfo($file_name, PATHINFO_EXTENSION);
Наступний варіант отримання розширення файлу це використовувати функції array_pop та explode.
php> array_pop(explode('.', $file_name));
Спочатку функція explode розбиває рядок на масив по роздільнику, в даному випадку роздяглися у нас це точка, і після функція array_pop повертає останній елемент з цього масиву, а останній елемент масиву це якраз наше розширення.
Наступним варіантом для отримання розширення файлу ми будемо використовувати клас SpplFileInfo. Клас SplFileInfo має багато різних методів надання різної інформації про файл, нам потрібно використовувати один з його методів який називається getExtension.
php> $info = new SplFileInfo($file_name);
php> $info->getExtension();
Всім дякую, я сподіваюся, що вам моя стаття хоч чимось допомогла.