finfo_buffer

finfo::buffer

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

finfo_buffer -- finfo::bufferReturn information about a string buffer

Description

Procedural style

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

Object-oriented style

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

This function is used to get information about binary data in a string.

Parameters

finfo
An finfo instance, returned by finfo_open().
string
Content of a file to be checked.
flags
One or disjunction of more Fileinfo constants.
context

Return Values

Returns a textual description of the string argument, or false if an error occurred.

Changelog

Version Description
8.5.0 The context parameter has been deprecated as it is ignored.
8.1.0 The finfo parameter expects an finfo instance now; previously, a resource was expected.
8.0.0 context is nullable now.

Examples

Example #1 A finfo_buffer() example

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

The above example will output something similar to:

application/x-sh; charset=us-ascii

See Also

add a note

User Contributed Notes 2 notes

up
22
contact at ingnu dot fr
14 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
10 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