Категория:
Опубликовано:

Как определить тип файла

File Extensions

Бывают случаи, когда необходимо производить какие-либо действия с файлом, в зависимости от его типа (расширения, формата...)

Рассмотрим несколько методов "добычи" этой информации с помощью PHP.

Функция "pathinfo"

Наиболее старый распространенный способ - использовать функцию pathinfo.

С помощью этой функции можно получить информацию, передав ей путь к интересующему нас файлу:

$file_path = pathinfo('/www/sitedir/file.xml');

На выходе мы получим массив с данными о файле со следующими ключами "dirname", "basename", "extension" и "filename":

$file_path['dirname'];   // Название директории
$file_path['basename'];  // Название файла (с расширением)
$file_path['extension']; // Расширение файла
$file_path['filename'];  // Название файла (начиная с PHP 5.2.0)

Элемент массива extension как раз наш случай:

$file_path = pathinfo('/www/sitedir/file.xml');
$file_extension = $file_path['extension'];
echo $file_extension;

И получаем xml.

Все это работает на PHP начиная еще с 4-й версии, поэтому функцией можно пользоваться без опасений.

Класс "SplFileInfo"

В PHP версий от 5.3.6 добавлен класс для работы с файлами SplFileInfo.

Предоставляет очень мощную базу. Все функции рассматривать не будем, только нужную нам SplFileInfo::getExtension.

Тип файла можно получить следующим образом:

$file = new SplFileInfo('file.xml');
$file_extension = $file->getExtension();
echo $file_extension;

На выходе нас ждет все тот же xml.

Другие способы

Вот еще несколько способов реализации нужного нам функционала классическими методами PHP:

C помощью функций end и explode:

echo end(explode('.', 'file.xml'));

C помощью функций substr и strrpos:

echo substr('file.xml', strrpos('file.xml', '.') + 1);

C помощью функций substr и strrchr:

echo substr(strrchr('file.xml', '.'), 1);

C помощью функций array_pop и explode:

echo array_pop(explode('.', 'file.xml'));

Подсмотрено здесь.

Вот так вот...

Теги: 
Если у Вас возникли вопросы, замечания, предложения или просто благодарность - пишите в комментариях.
Делитесь полезными материалами в социальных сетях.
Добавить комментарий