finfo_open
finfo::__construct
(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)
finfo_open -- finfo::__construct — Create a new finfo instance
Description
Procedural style
Object-oriented style (constructor):
This function opens a magic database and returns its instance.
Parameters
-
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
MAGICenvironment variable is used. If the environment variable isn't set, then PHP's bundled magic database will be used.Passing
nullor an empty string will be equivalent to the default value.
Return Values
(Procedural style only)
Returns an finfo instance on success, or false on failure.
Changelog
| Version | Description |
|---|---|
| 8.1.0 | Returns an finfo instance now; previously, a resource was returned. |
| 8.0.3 |
magic_database is nullable now.
|
Examples
Example #1 Object-oriented style
<?php
$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic"); // return mime type ala mimetype extension
/* get mime-type for a specific file */
$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();
}
/* get mime-type for a specific file */
$filename = "/usr/local/something.txt";
echo finfo_file($finfo, $filename);
/* close connection */
finfo_close($finfo);
?>
The above example will output:
text/plain; charset=us-ascii
Notes
Note:
Generally, using the bundled magic database (by leaving
magic_databaseand theMAGICenvironment variables unset) is the best course of action unless you specifically need a custom magic database.

