finfo_buffer
finfo::buffer
(PHP 5 >= 5.3.0, PHP 7, PECL fileinfo >= 0.1.0)
finfo_buffer -- finfo::buffer — Возвращает информацию о строке буфера
Описание
Процедурный стиль
$finfo
, string $string
= NULL
[, int $options
= FILEINFO_NONE
[, resource $context
= NULL
]] )Объектно-ориентированный стиль
$string
= NULL
[, int $options
= FILEINFO_NONE
[, resource $context
= NULL
]] )Эта функция используется для получения информации о бинарных данных в строке.
Список параметров
-
finfo
-
Ресурс Fileinfo, полученный функцией finfo_open().
-
string
-
Содержимое проверяемого файла.
-
options
-
Одна или операция логическое "ИЛИ" из нескольких Fileinfo констант.
-
context
-
Возвращаемые значения
Возвращает текстовое описание для аргумента string
или FALSE
, в случае ошибки.
Примеры
Пример #1 A finfo_buffer() example
<?php
$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($_POST["script"]) . "\n";
?>
Результатом выполнения данного примера будет что-то подобное:
application/x-sh; charset=us-ascii
Коментарии
You can easily check mime type of an internet resource using this code :
<?php
function getUrlMimeType($url) {
$buffer = file_get_contents($url);
$finfo = new finfo(FILEINFO_MIME_TYPE);
return $finfo->buffer($buffer);
}
?>
I'm using it to detect if an url given by a user is a HTML page (so I do some stuff with the HTML) or a file on Internet (so I show an icon accordingly to the mime type).
You should never rely on finfo::buffer to get the MimeType of a file, you must always save the file physically or temporariliy and use finfo_open to get MimeType. I tested it with an excell file, with buffer it says octet-stream that is not valid, with finfo_open it says ms-excell as correct.