PHP 8.4.1 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

adicione uma nota

Notas Enviadas por Usuários (em inglês) 2 notes

up
22
contact at ingnu dot fr
13 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
8
nimasdj [AT] yahoo [DOT] com
9 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.
To Top