新しい fileinfo リソースを作成する

# finfo_open

# finfo::__construct

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_open -- finfo::__construct — 新しい fileinfo リソースを作成する

### 説明

手続き型

finfo_open ([ int `$options` = FILEINFO_NONE [, string `$magic_file` = `NULL` ]] ) : resource

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

public finfo::__construct ([ int `$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

### 参考

- finfo_close() - fileinfo リソースを閉じる