函数名:finfo_open()
函数描述:finfo_open() 函数用于打开一个文件或字符串的信息资源。
适用版本:该函数在PHP 5 >= 5.3.0, PHP 7 所有版本中可用。
语法:resource finfo_open ([ int $options = FILEINFO_NONE [, string $magic_file = NULL ]] )
参数:
options(可选):指定额外的选项,可使用以下常量进行设置:
- FILEINFO_NONE:默认值,不进行任何特殊处理。
- FILEINFO_SYMLINK:如果指定的文件是符号链接,则返回链接的信息而不是链接指向的文件的信息。
- FILEINFO_MIME_TYPE:返回文件的 MIME 类型。
- FILEINFO_MIME_ENCODING:返回文件的 MIME 编码。
- FILEINFO_MIME:返回文件的 MIME 类型和编码。
- FILEINFO_COMPRESS:对于已经压缩的文件,返回原始文件的 MIME 类型和编码。
- FILEINFO_DEVICES:在返回结果中包含设备节点。
- FILEINFO_CONTINUE:返回所有可能的匹配结果,而不仅仅是第一个。
- FILEINFO_PRESERVE_ATIME:在调用 finfo_open() 之后,保留访问时间。
magic_file(可选):指定一个自定义的魔术文件路径,用于检测文件类型。如果不指定,则使用系统默认的魔术文件。
返回值:成功时返回一个信息资源对象(resource),失败时返回 FALSE。
示例1:使用默认选项打开一个文件并获取其 MIME 类型。
$finfo = finfo_open();
if ($finfo) {
$filename = 'example.txt';
$mimetype = finfo_file($finfo, $filename, FILEINFO_MIME_TYPE);
echo "文件 $filename 的 MIME 类型为:$mimetype";
finfo_close($finfo);
} else {
echo "无法打开 finfo 资源";
}
示例2:打开一个字符串并获取其 MIME 类型。
$finfo = finfo_open();
if ($finfo) {
$string = "This is a test string.";
$mimetype = finfo_buffer($finfo, $string, FILEINFO_MIME_TYPE);
echo "字符串的 MIME 类型为:$mimetype";
finfo_close($finfo);
} else {
echo "无法打开 finfo 资源";
}
以上示例中,我们使用 finfo_open() 函数打开了一个信息资源对象,然后使用 finfo_file() 函数和 finfo_buffer() 函数分别获取了文件和字符串的 MIME 类型。最后通过 finfo_close() 函数关闭了信息资源对象。请根据实际需求选择适合的选项和参数调用 finfo_open() 函数。