gpt4 book ai didi

php - 使用 php 为所有文件格式查找 Mime 类型的文件或 url

转载 作者:可可西里 更新时间:2023-11-01 13:05:49 28 4
gpt4 key购买 nike

您好,我正在寻找在 php 中找出任何本地文件或 url 的 mime 类型的最佳方法。我试过mime_content_type php 的功能,但由于它已被弃用,我正在为所有文件格式寻找更好的 php 解决方案。

mime_content_type — Detect MIME Content-type for a file ***(deprecated)***

下面的功能我已经试过了

echo 'welcome';
if (function_exists('finfo_open')) {
echo 'testing';
$finfo = finfo_open(FILEINFO_MIME);
$mimetype = finfo_file($finfo, "http://4images.in/wp-content/uploads/2013/12/Siberian-Tiger-Running-Through-Snow-Tom-Brakefield-Getty-Images-200353826-001.jpg");
finfo_close($finfo);
echo $mimetype;
}

上面的代码对我不起作用,我只看到 welcome 的输出。我不确定我是否在这里做错了什么。


下面的代码在我的本地以某种方式工作,但它不适用于 url。

$file = './apache_pb2.png';
$file_info = new finfo(FILEINFO_MIME); // object oriented approach!
$mime_type = $file_info->buffer(file_get_contents($file)); // e.g. gives "image/jpeg"
$mime = explode(';', $mime_type);
print $mime[0];

除了 php 中的 mime_content_type 函数之外,是否有一些解决方法(url 和 local)。为所有内容(图像、视频、文件等)设置 mime 类型的最佳做法是什么。还推荐在 php 中使用 mime_content_type 函数,这是 php 中的最佳实践吗?

最佳答案

利用file_info在 PHP 中以 FILEINFO_MIME_TYPE 标志作为参数。

[示例取自 PHP 手册]

<?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);
?>

输出:

text/html
image/gif
application/vnd.ms-excel

编辑:

您需要在您的 PHP.ini 上启用扩展

;extension=php_fileinfo.dll

从该行中删除分号并重新启动您的网络服务器,您就可以开始了。
Installation Doc.

关于php - 使用 php 为所有文件格式查找 Mime 类型的文件或 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21906596/

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