PHP 8.1.28 Released!

finfo_buffer

finfo::buffer

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

finfo_buffer -- finfo::bufferRetorna informações sobre um buffer de string

Descrição

Estilo procedural

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

Estilo orientado a objetos

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

Esta função é usada para obter informações sobre dados binários em uma string.

Parâmetros

finfo

Uma instância de finfo, retornada por finfo_open().

string

Conteúdo do arquivo a ser verificado.

flags

Uma ou disjunção de mais constantes Fileinfo.

context

Valor Retornado

Retorna uma descrição textual do parâmetro string, ou false em caso de erro.

Registro de Alterações

Versão Descrição
8.1.0 O parâmetro finfo agora espera uma instância de finfo; anteriormente, um resource era esperado.
8.0.0 O parâmetro context agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de finfo_buffer()

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

O exemplo acima produzirá algo semelhante a:

application/x-sh; charset=us-ascii

Veja Também

add a note

User Contributed Notes 4 notes

up
22
contact at ingnu dot fr
12 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
7
nimasdj [AT] yahoo [DOT] com
8 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
-20
donjajo4all at gmail dot com
9 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
-23
donjajo4all at gmail dot com
9 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