finfo_open

finfo::__construct

新しい fileinfo インスタンスを作成する

説明

手続き型

finfofalse finfo_open(int $flags = FILEINFO_NONE, stringnull $magic_database = null)

オブジェクト指向型 (コンストラクタ)

public finfo::__construct(int $flags = FILEINFO_NONE, stringnull $magic_database = null)

この関数は、magic データベースをオープンしてそのインスタンスを返します。

パラメータ

flags

ひとつあるいは複数のFileinfo 定数の組み合わせ。

magic_database

magic データベースファイルの名前。通常は /path/to/magic.mime のようになります。 指定されなかった場合は、環境変数 MAGIC の値が使用されます。この環境変数も設定されていない場合は、 PHP の組み込みの magic データベースを使います。

null あるいは空文字列は、デフォルト値と同じ意味となります。

戻り値

成功した場合に finfo クラスのインスタンスを返します。 失敗した場合に false を返します.

変更履歴

バージョン 説明
8.1.0 finfo クラスのインスタンスを返すようになりました。 これより前のバージョンでは、 リソース を返していました。
8.0.3 magic_database は、nullable になりました。

例1 オブジェクト指向型

<?php
$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic"); // mime タイプを mimetype 拡張形式で返します

/* 指定したファイルの mime タイプを取得します */
$filename = "/usr/local/something.txt";
echo $finfo->file($filename);

?>

例2 手続き型

<?php
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic"); // mime タイプを mimetype 拡張形式で返します

if (!$finfo) {
    echo "fileinfo データベースのオープンに失敗しました";
    exit();
}

/* 指定したファイルの mime タイプを取得します */
$filename = "/usr/local/something.txt";
echo finfo_file($finfo, $filename);

/* 接続を閉じます */
finfo_close($finfo);
?>

上の例の出力は以下となります。

text/plain; charset=us-ascii

注意

注意:

一般的には、独自の magic データベースを使う必要がある場合を除いて、 組み込みの magic データベースを使うのが一番いい方法です (magic_database を省略し、環境変数 MAGIC も設定しないようにします)。

参考

  • finfo_close