(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)
finfo_open -- finfo::__construct — 创建新 finfo 实例
过程化风格
面向对象风格(构造器):
本函数打开一个魔数数据库并且返回它的实例。
flags
一个 Fileinfo 常量 或多个 Fileinfo 常量 进行逻辑或运算。
magic_database
魔数数据库文件名称,
通常是 /path/to/magic.mime。
如果未指定,则使用 MAGIC
环境变量。
如果未指定此环境变量,
则使用 PHP 绑定的魔数数据库。
传入 null
或者空字符串,等同于使用默认值。
示例 #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);
?>
示例 #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
注意:
通常来说,除非特别需要自定义的魔数数据库。否则使用绑定的魔数数据库(不设置
magic_file
和MAGIC
环境变量)是最好的做法。