如何在 PHP 中获取具有file_get_contents的 MIME 类型的图像
2022-08-30 20:20:38
我需要获取图像的 MIME 类型,但我只有 我使用 的图像的正文。是否有可能获得 MIME 类型?file_get_contents
我需要获取图像的 MIME 类型,但我只有 我使用 的图像的正文。是否有可能获得 MIME 类型?file_get_contents
是的,你可以这样得到它。
$file_info = new finfo(FILEINFO_MIME_TYPE);
$mime_type = $file_info->buffer(file_get_contents($image_url));
echo $mime_type;
如果使用 HTTP 下载文件,请不要猜测(也称为自动检测)MIME 类型。即使您使用 下载了文件,您仍然可以访问 HTTP 标头。file_get_contents
使用 $http_response_header
检索最后一次调用(或使用 http[s]://
包装器的任何调用)的标头。file_get_contents
$contents = file_get_contents("https://www.example.com/image.jpg");
$pattern = "/^content-type\s*:\s*(.*)$/i";
if (($header = array_values(preg_grep($pattern, $http_response_header))) &&
(preg_match($pattern, $header[0], $match) !== false))
{
$content_type = $match[1];
echo "Content-Type is '$content_type'\n";
}
仅当服务器未能提供(或仅提供通用的 catch-all 类型,如 )时才诉诸自动检测。Content-Type
application/octet-stream