Fileinfo

Функции в этом модуле пытаются определить тип содержимого и кодировку файла, основываясь на некоторых магических последовательностях байт на определенных позициях в файле. Пока данный подход не является абсолютно надежным, однако эвристика неплохо справляется со своей работой.

finfo_open()

  • Создает ресурс Fileinfo.
  • Данная функция открывает магическую базу данных и возвращает ресурс на нее.
  • Имя файла магической базы данных, обычно что-то наподобие этого: /path/to/magic.mime. Если не указан полный путь, будет использована переменная окружения MAGIC. Если переменная окружения не указана, то будет использоваться встроенная в PHP магическая база данных.
//Пример #1 Объектно-ориентированный стиль

<?php
$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic"); // возвращает mime-тип аля mimetype расширения

/* получить mime-type для указанного файла */
$filename = "/usr/local/something.txt";
echo $finfo->file($filename);

//Пример #2 Процедурный стиль

<?php
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic"); // возвращает mime-тип аля mimetype расширения

if (!$finfo) {
    echo "Opening fileinfo database failed";
    exit();
}

/* получить mime-type для указанного файла */
$filename = "/usr/local/something.txt";
echo finfo_file($finfo, $filename);

/* закрыть соединение */
finfo_close($finfo);

/*
Результат выполнения данного примера:
text/plain; charset=us-ascii
*/
?>

finfo_file($resource,$filename)

  • Возвращает информацию о файле.
<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // возвращает mime-тип
foreach (glob("*") as $filename) {
    echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);

/*
text/html
image/gif
application/vnd.ms-excel
*/
?>

finfo_close($resource)

  • Закрывает ресурс Fileinfo.
  • Эта функция закрывает ресурс, который был открыт функцией finfo_open().