finfo_open

finfo::__construct

Create a new fileinfo resource

&reftitle.description;

&style.procedural;

`resource` `finfo_open` `int` `options` FILEINFO_NONE `string` `magic_file`&null;

&style.oop; (constructor):

public `finfo::__construct` `int` `options` FILEINFO_NONE `string` `magic_file`&null;

This function opens a magic database and returns its resource.

&reftitle.parameters;

`options`

- One or disjunction of more Fileinfo constants.

`magic_file`

- 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.

&reftitle.returnvalues;

(Procedural style only) Returns a magic database resource on success&return.falseforfailure;.

&reftitle.notes;

The expected magic database format changed in PHP 5.3.11 and 5.4.1. Due to this, the internal magic database was upgraded. This mostly effects code where an external magic database is used: reading an older magic file will now fail. Also, some textual representations of the mime types has changed, for instance for PHP would be "PHP script, ASCII text" instead of "PHP script text" returned.

Generally, using the bundled magic database (by leaving `magic_file` and the `MAGIC` environment variables unset) is the best course of action unless you specifically need a custom magic database.

&reftitle.examples;

### &style.oop;

    <?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);

    ?>

### &style.procedural;

    <?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);
    ?>

&example.outputs;

    text/plain; charset=us-ascii

&reftitle.seealso;

- `finfo_close`