(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)
finfo_open -- finfo::__construct — Create a new finfo instance
Procedural style
Object-oriented style (constructor):
This function opens a magic database and returns its instance.
flags
One or disjunction of more Fileinfo constants.
magic_database
Name of a magic database file, usually something like /path/to/magic.mime. If not specified, the MAGIC
environment variable is used. If the environment variable isn't set, then PHP's bundled magic database will be used.
Passing null
or an empty string will be equivalent to the default value.
Version | Description |
---|---|
8.1.0 | Returns an finfo instance now; previously, a resource was returned. |
8.0.3 | magic_database is nullable now. |
Example #1 Object-oriented style
<?php
$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic"); // return mime type ala mimetype extension
$filename = "/usr/local/something.txt";
echo $finfo->file($filename);
?>
Example #2 Procedural style
<?php
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic"); // return mime type ala mimetype extension
if (!$finfo) {
echo "Opening fileinfo database failed";
exit();
}
$filename = "/usr/local/something.txt";
echo finfo_file($finfo, $filename);
finfo_close($finfo);
?>
The above example will output:
text/plain; charset=us-ascii
Note:
Generally, using the bundled magic database (by leaving
magic_database
and theMAGIC
environment variables unset) is the best course of action unless you specifically need a custom magic database.