查找文件数据是否为图像(php)

Chr*_*ian 2 php linux file-type image mime-types

想象一下,我在变量中有一些文件数据$data.我需要确定它是否是图像.不需要像腐败图像等细节.

首先想到的是通过查看幻数来获取文件mime类型,然后查看"image"是否属于mime类型.

没有这样的运气,即使我有一个"mime类型的文件扩展名"脚本,我没有一个可靠的方法从魔法数字获取mime.

我的下一个选择是拥有一个合理的图像文件幻数列表并查阅它们.然而,找到这样的魔术数字是相对困难的(例如,gif有不同的幻数,其中一些可能非常罕见 - 如果记忆对我有用).

一个更好的想法是一些Linux程序可以做这种事情.

有任何想法吗?我正在运行RHEL和PHP 5.3.我有root权限 - 即可以根据需要安装东西.

- 克里斯.

Chr*_*ian 6

最好的答案(我从Col.Srapnel确定)将使用:

$handle = imagecreatefromstring($data);
Run Code Online (Sandbox Code Playgroud)

引用PHP手册:

成功返回图像资源.如果图像类型不受支持,数据不是可识别的格式,或者图像已损坏且无法加载,则返回FALSE.