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