PHP - 猜测存储在变量中的图像的 MIME 类型

PHP - guess MIME type of image stored in variable

我将小图像存储在数据库中(MySQL、blob),所以当我检索任何图像时,它都是可变的。

我的计划是用 CSS 显示背景图像中的 base64 编码图像:background: url(data:image/…

要执行此操作,我需要检测变量中的 MIME 图像类型。有 exif_imagetype,但它仅适用于文件。

有什么方法可以检测不是作为文件存储而是在变量中的图像的 MIME 类型?

您可以使用 getimagesizefromstring 获取有关图像 blob 的信息,包括图像的 MIME 类型。自 PHP 5.4.

起可用

不过,我也建议将 MIME 类型存储在数据库中。启发式方法是“昂贵的”,在数据库中存储几个字节比一遍又一遍地猜测图像类型要有效得多。