Php 找不到finfo路径

Php 找不到finfo路径,php,Php,我使用的是5.3.1,在阅读了文档之后,我看到包含了fileinfo,不再需要pecl。然而,我得到了: finfo_file():找不到文件或路径 我不知道它在找什么。我已经在ini文件中启用了扩展名,并尝试从PHP站点运行示例: $finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension foreach (glob("*") as $filename) { echo finfo

我使用的是5.3.1,在阅读了文档之后,我看到包含了fileinfo,不再需要pecl。然而,我得到了:

finfo_file():找不到文件或路径

我不知道它在找什么。我已经在ini文件中启用了扩展名,并尝试从PHP站点运行示例:

$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
foreach (glob("*") as $filename) {
    echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);

有人能告诉我我需要什么文件吗?

您需要配置您的环境,以便PHP知道“魔法数据库文件”在哪里,或者,作为另一种可能,在调用时,您需要指定魔法数据库文件的路径(引用):

magic数据库文件的名称,通常为 类似于
/path/to/magic.mime

如果 未指定,
MAGIC
环境 使用变量
如果此变量为 也未设置,
/usr/share/misc/magic
默认情况下使用。A
.mime
和/或 如果需要,将添加
.mgc
后缀


参见手册页上给出的示例,例如(引用):


当然,由您来确定该文件在您的系统中的位置…

我刚从我的托管公司发现,在运行
phpinfo():
时,可以找到难以找到的magic.mime文件的路径,请查找条目“mime\u magic.magicfile”。如果未列出,请与您的托管公司联系,并说明您需要此文件和路径用于PHP
finfo()
。为我工作。

嘿,帕斯卡,谢谢你的帮忙。我的印象是mime数据库包含在内,我不需要下载它。我不知道它在哪里。我刚刚检查了PHP目录,没有神奇的mime或mime文件。如果我使用的是5.3.1,你确定我需要它吗?mime数据库与PHP没有特别的关系——它可能是由其他软件包提供的……好的,我需要它还是捆绑在5.3中?我的印象是它是捆绑的。我也在网上找,但是找不到。我最后一次看到它的地方是在PECL网站上,但我也找不到。不,那个数据库不是PHP提供的(所以,不是捆绑的):PHP只使用它。这意味着它必须从“某处”安装;;在的用户说明中有一些信息;也许这些会有帮助。谢谢帕斯卡的链接。你知道我在哪里能找到这个神秘文件的副本吗?我不能把它放在任何地方,只是来自你提供的链接,也没有参考。
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic"); // return mime type ala mimetype extension

if (!$finfo) {
    echo "Opening fileinfo database failed";
    exit();
}

/* get mime-type for a specific file */
$filename = "/usr/local/something.txt";
echo finfo_file($finfo, $filename);

/* close connection */
finfo_close($finfo);