(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)
finfo_open -- finfo::__construct — 新しい fileinfo リソースを作成する
手続き型
$options
= FILEINFO_NONE
[, string $magic_file
= NULL
]] )オブジェクト指向型 (コンストラクタ)
$options
= FILEINFO_NONE
[, string $magic_file
= NULL
]] )この関数は、magic データベースをオープンしてそのリソースを返します。
options
ひとつあるいは複数のFileinfo 定数の組み合わせ。
magic_file
magic データベースファイルの名前。通常は /path/to/magic.mime のようになります。 指定されなかった場合は、環境変数 MAGIC の値が使用されます。この環境変数も設定されていない場合は、 PHP の組み込みの magic データベースを使います。
NULL
あるいは空文字列は、デフォルト値と同じ意味となります。
(手続き型の場合のみ) 成功した場合に magic データベースリソース、失敗した場合に FALSE
を返します。
PHP 5.3.11 および 5.4.1 で、magic データベースのフォーマットが変わりました。 そのため、内部的な mime データベースも更新されました。 この影響が特に及ぶのは、外部の magic を読み込んでいる場合です。 旧フォーマットの magic ファイルを読み込んでも動作しません。 また、mime タイプのテキスト表現が変わったものもあります。たとえば PHP の場合の返り値は "PHP script text" ではなく "PHP script, ASCII text" となります。
注意:
一般的には、独自の magic データベースを使う必要がある場合を除いて、 組み込みの magic データベースを使うのが一番いい方法です (
magic_file
を省略し、環境変数 MAGIC も設定しないようにします)。
例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