(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)
finfo_open -- finfo::__construct — Создает ресурс Fileinfo
Процедурный стиль
$options
= FILEINFO_NONE
[, string $magic_file
]] ) : resourceОбъектно-ориентированный стиль (конструктор):
Данная функция открывает магическую базу данных и возвращает ресурс на нее.
options
Одна или несколько объединенных через бинарное ИЛИ констант Fileinfo.
magic_file
Имя файла магической базы данных, обычно что-то наподобие этого: /path/to/magic.mime. Если не указан полный путь, будет использована переменная окружения MAGIC. Если переменная окружения не указана, то будет использоваться встроенная в PHP магическая база данных.
Передача NULL
или пустой строки эквивалентно значению по умолчанию.
(Только процедурный стиль)
Возвращает ресурс магической базы данных в случае успеха или FALSE
в случае возникновения ошибки.
Начиная с PHP >= 5.3.11 и >= 5.4.1 формат магической базы данных изменен. Вследствие этого внутренняя база данных mime была также обновлена. Особенно это влияет на код, где читается внешняя база magic. Чтение magic-файлов старых форматов работать не будет. Также изменены некоторые текстовые представления mime-типов, например, для PHP будет возвращено "PHP script, ASCII text" вместо "PHP script text".
Замечание:
Обычно использование встроенной магической базы данных (при неустановленных
magic_file
и MAGIC) лучший выбор, если вам не нужна определенная версия магической базы данных.
Пример #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 "Открытие базы данных fileinfo не удалось";
exit();
}
/* получить mime-type для указанного файла */
$filename = "/usr/local/something.txt";
echo finfo_file($finfo, $filename);
/* закрыть соединение */
finfo_close($finfo);
?>
Результат выполнения данного примера:
text/plain; charset=us-ascii