6

我正在寻找最好的(可能在大多数 PHP 5.2 安装并且仍在积极开发中)检测 PHP 中文件 MIME 类型的方法。

我知道该mime_content_type()方法和 Fileinfo 扩展名,但是mime_content_type()不可靠且已弃用,并且 Fileinfo 不是“标准” PHP(5.2)安装。

我还有其他选择吗?

4

4 回答 4

11

(大声笑对不起,我意识到这是几个月前我正在整理的时候问的。哦,好吧。不妨添加这个......)

如果它是 *nix 服务器,您可以使用file命令。

file -bi <filepath>

我猜你必须在 PHP 中使用“exec”来做到这一点?我是 PHP 新手,所以不要引用我的话,但是......

$content_type = exec("file -bi " . escapeshellarg($filepath));

我没有对其进行测试,因此您可能需要转义路径字符串并格式化输出。

不知道这是否比其他方法更可靠。

于 2010-01-05T05:46:57.137 回答
5

你看过这个 PEAR 包吗?

http://pear.php.net/package/MIME_Type

于 2009-03-16T20:25:33.777 回答
0

您可以对正在运行的网络服务器进行子请求,然后解析标头以获取 mime 类型。由于这很慢,因此使用 curl 仅获取标头而不是完整请求。如果您正在查看大文件,这一点很重要。

如果您正在运行 Apache 并使用 php 作为模块,请查看 VIRTUAL 函数。与使用 curl 相比,这是一种更快的子请求方式。

否则,您可以通过扩展名查找 mime 类型。这将使所有命名良好的文件都能正常工作。

于 2009-03-16T21:31:49.657 回答
0

简单: http ://www.php.net/manual/en/function.mime-content-type.php#107798

于 2012-03-05T19:54:30.390 回答