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

Beschreibung

Prozeduraler Stil

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

Objektorientierter Stil

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.

Parameter-Liste

finfo

Eine finfo-Instanz, die von finfo_open() zurückgegeben wurde.

string
Content of a file to be checked.
flags
One or disjunction of more Fileinfo constants.
context

Rückgabewerte

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

Changelog

Version Beschreibung
8.5.0 The context parameter has been deprecated as it is ignored.
8.1.0 Der Parameter finfo erwartet nun eine finfo-Instanz; vorher wurde eine Ressource erwartet.
8.0.0 context is nullable now.

Beispiele

Beispiel #1 A finfo_buffer() example

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

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

application/x-sh; charset=us-ascii

Siehe auch

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