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