这些finfo_*
函数返回有关文件的信息;最有趣的功能是
string finfo_file(resource $finfo, string $file_name = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]])
第一个参数是一个资源,它只是你想要返回的关于文件的信息;就我而言,我想要FILEINFO_MIME_TYPE
,所以我使用以下finfo_open()
功能:
resource finfo_open([int $options = FILEINFO_NONE [, string $magic_file = NULL ]])
最后得到
$a = finfo_open(FILEINFO_MIME_TYPE)
echo finfo_file($a,$fileatt['tmp_name']);
获取我上传文件的 mime 类型,一切正常
但是,有两个问题:
的第三个(可选)参数
finfo_file
是int $options = FILEINFO_NONE
,但这与 的第一个选项相同finfo_open
;既然它是的第一个参数中资源finfo_file
的一部分,为什么它也是int
同一函数中的可选 () 参数?其次,术语资源和函数名称
finfo_open
似乎相当混乱;在mysql_*
函数中,资源是查询的结果,我可以理解为一个相当复杂的对象;然而,这里的资源只是一个字符串,那么为什么 PHP 让它看起来比看起来更复杂呢?类似地,通常在任何地方正在操作文件并且需要使用的功能之一在其名称中带有open一词最初(对我来说,无论如何)暗示这是打开/启动文件流的功能,而在这里它用于指定您想要从文件中获取的信息。这些术语在这里有什么奇怪的历史原因吗?