1. Головна
  2. Колонка автора
  3. Отримати розширення файлу в PHP

Отримати розширення файлу в PHP

Отримати розширення файлу в PHPУ цій статті я розповім дуже прості способи, як отримати розширення файлу засобами PHP. Опишу докладно. Для початку заносимо назву файлу до змінної:
$filename = 'example.jpg';
Далі нам допоможе функція Explode, за допомогою якої розбиваємо рядок на підрядки.
$getMime = explode('.', $filename);
Як роздільник використовується символ крапки (.), тобто символ поділу назви файлу від його розширення.

Залишається отримати останній елемент масиву. У цьому нам допоможе функція End:
$mime = end($getMime);
Ось і все, тепер змінна $mime містить значення розширення файлу.

Цю операцію можна здійснювати за допомогою функції:
function getExtension($filename){
return end(explode('.', $filename));
}
Починаючи з версії PHP 5, розробники PHP посилили вимоги до коду. Зокрема, це стосується роботи функцій, що приймають як аргументи - посилання на змінні, масиви тощо. Тому ця функція може вивести помилку:
Strict Standards: Only variables should be passed by reference in file.php on line …
Причина помилки полягає у передачі на вхід функції, що вимагає покажчика на змінну, результату виконання іншої функції.

В даному випадку ми бачимо як результат роботи Explode передається безпосередньо як параметр у функцію End. Але функція End працює із вказівником на масив, а не зі значенням масиву.

Для вирішення необхідно спочатку перенести значення в тимчасову змінну, і лише потім передаємо в End покажчик на цю змінну.
function getExtension($filename) {
$temp = explode('.', $filename);
return end($temp);
}
Власне всі подібні помилки вирішуються саме таким чином. Якщо у вашій програмі десь почала з’являтися вищезгадана помилка, то просто створюйте тимчасову змінну.

У такий же спосіб можна отримати розширення файлу, але замість функції End використовується функція Array_pop:
function getExtension($filename) {
$temp = explode('.', $filename);
return array_pop($temp);
}

Функція Array_pop видаляє елемент наприкінці масиву, тобто повертає останнє значення масиву. На одну операцію виконується більше ніж функцією End, але різниця настільки маленька, що на це навіть не варто акцентувати увагу.

Виконати пошук розширення можна використовуючи разом функцію Substr та функцію Strrpos:
echo substr($filename, strrpos($filename, '.') + 1);
Щоб позбутися самої точки в отриманому підрядку, збільшуємо початок старту на одне зміщення вправо (1).

Існує ще один спосіб:
echo substr(strrchr($filename, '.'), 1);
Працює наступним чином: функція Strrchr повертає ділянку рядка, що йде за вказаним параметром, після чого Substr відрізає перший символ - крапку.

Попередні функції демонструють можливості мови програмування PHP. Але для отримання розширення файлу використовуються досить рідко, адже існує спеціалізована функція Pathinfo, за допомогою якої можна отримати бажаний результат.

Для цього виконуємо простий код:
echo pathinfo($filename, PATHINFO_EXTENSION);
Отже, отримати розширення файлу можна багатьма способами і лише вам самим вирішувати, яким чином використовувати для різних випадків можливий підхід.
Редакція «КовельPost» може не поділяти думку блогерів або дописувачів. За зміст публікацій і їх достовірність відповідальність несуть автори.

Коментарі

  • Ігор
    Дуже дякую, багато води для новачків спочатку, а реально все вирішує функція pathinfo.
    Відповісти
  • Юрій
    Відповісти

Підписуйтесь на наш канал у Telegram! 🚀

@kovelpost