gpt4 book ai didi

php - PHP finfo() 从哪里获取文件信息?它与 "file -i"输出不匹配

转载 作者:行者123 更新时间:2023-12-05 04:16:36 29 4
gpt4 key购买 nike

这很烦人,我无法使用 php finfo() 为许多不同的文件获取正确的 MIME 类型。

这是我的小测试程序:

<? $finfo = new finfo(FILEINFO_MIME);
echo $finfo->file('/mnt/partage/Film/Sintel.2010.1080p.mkv');

它的输出是完全不正确的:

application/octet-stream; charset=binary

这是 file -bi/mnt/partage/Film/Sintel.2010.1080p.mkv 输出:

video/x-matroska; charset=binary

显然 php finfo() 没有使用正确的魔法文件。然而,没有太多选择:要么是 /usr/share/file/magic 要么是 /etc/magic.mime,它们都不能在 php 上运行。

我正在 Debian 稳定版(wheezy)上运行它,并向后移植了 libmagic。从 Apache 或命令行调用程序时都会出现此问题。

最佳答案

文件信息使用 data这是用PHP编译的。它不使用 libmagic,因此更改 libmagic 对 PHP 没有影响。唯一的选择是使用较新的 PHP 版本,或者使用新的数据文件自行编译。

编辑:或将$magic_file参数传递给finfo_open ,或设置 MAGIC 环境变量。

关于php - PHP finfo() 从哪里获取文件信息?它与 "file -i"输出不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26759769/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com