(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)
finfo_open -- finfo::__construct — 創建一個 fileinfo 資源
說明
過程化風格
resource finfo_open ([ int$options
= FILEINFO_NONE
[, string $magic_file
= NULL
]] )
面向對象風格 (構造器):
public finfo::__construct ([ int$options
= FILEINFO_NONE
[, string $magic_file
= NULL
]] )
本函數打開一個魔數數據庫并且返回它的資源。
參數
options
一個 Fileinfo 常量 或多個 Fileinfo 常量 進行邏輯或運算。
magic_file
魔數數據庫文件名稱, 通常是 /path/to/magic.mime。 如果未指定,則使用 MAGIC 環境變量。 如果未指定此環境變量, 則使用 PHP 綁定的魔數數據庫。
傳入 NULL
或者空字符串,等同于使用默認值。
返回值
(僅適用于過程化風格)
如果成功則返回一個表示魔數數據庫的資源,
或者在失敗時返回 FALSE
。
注釋
Warning在 PHP 5.3.11 和 5.4.1 中預期的魔數數據庫格式發生了變動, 所以,內置的魔數數據庫被更新。 如果使用了外部魔數數據庫, 可能會由于格式不同導致讀取失敗。 同時,一些 mime 類型的文字表示也發生了變化, 例如,PHP 文件的 mime 類型由 “"PHP script text” 變為“PHP script, ASCII text”。
Note:
通常來說,使用 PHP 綁定的魔數數據庫(設置 magic_file
參數為空,
不設置 MAGIC 環境變量)是最好的選擇,
除非你確實需要一個自定義的魔數數據庫。
范例
Example #1 面向對象風格
<?php
$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic"); // 返回 mime 類型
/* get mime-type for a specific file */
$filename = "/usr/local/something.txt";
echo $finfo->file($filename);
?>
Example #2 過程化風格
<?php
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic"); // 返回 mime 類型
if (!$finfo) {
echo "Opening fileinfo database failed";
exit();
}
/* 獲取指定文件的 mime 類型 */
$filename = "/usr/local/something.txt";
echo finfo_file($finfo, $filename);
/* 關閉資源 */
finfo_close($finfo);
?>
以上例程會輸出:
text/plain; charset=us-ascii
參見
finfo_close() - 關閉 fileinfo 資源