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

参考