PHP 8.1.0 Released!

finfo_buffer

finfo::buffer

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_buffer -- finfo::bufferВозвращает информацию о строке буфера

Описание

Процедурный стиль

finfo_buffer(
    finfo $finfo,
    string $string,
    int $flags = FILEINFO_NONE,
    ?resource $context = null
): string|false

Объектно-ориентированный стиль

public finfo::buffer(string $string, int $flags = FILEINFO_NONE, ?resource $context = null): string|false

Эта функция используется для получения информации о бинарных данных в строке.

Список параметров

finfo

Экземпляр finfo, возвращаемый функцией finfo_open().

string

Содержимое проверяемого файла.

flags

Одна или несколько объединённых через бинарное ИЛИ констант Fileinfo.

context

Возвращаемые значения

Возвращает текстовое описание для аргумента string или false в случае возникновения ошибки.

Список изменений

Версия Описание
8.1.0 Параметр finfo теперь ожидает экземпляр finfo; ранее ожидался ресурс (resource).
8.0.0 context теперь допускает значение null.

Примеры

Пример #1 Пример finfo_buffer()

<?php
$finfo 
= new finfo(FILEINFO_MIME);
echo 
$finfo->buffer($_POST["script"]) . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

application/x-sh; charset=us-ascii

Смотрите также

add a note add a note

User Contributed Notes 4 notes

up
20
contact at ingnu dot fr
10 years ago
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).
up
4
nimasdj [AT] yahoo [DOT] com
6 years ago
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.
up
-18
donjajo4all at gmail dot com
7 years ago
Get only a webpage content type and forget the charset

<?php
$file
= new finfo(FILEINFO_MIME);
echo
strstr($file->buffer(file_get_contents('http://example.com')),';',true)//Returns something similar to  text/html
?>
up
-18
donjajo4all at gmail dot com
7 years ago
Get only a webpage content type and forget the charset

<?php
$file
= new finfo(FILEINFO_MIME);
echo
strstr(file_get_contents('http://example.com'),';',true); //Returns something similar to  text/html
?>
To Top