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

查找文件数据是否为图像(php),第1张

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

想象一下,我在variables$data有一些文件$data 。 我需要确定它是否是一个图像。 不需要像腐败的图像等细节

首先想到的是通过查看幻数来获取文件MIMEtypes,然后查看“image”是否在MIMEtypes中。

没有这样的运气,即使我有一个“文件扩展到MIMEtypes”的脚本,我没有一个可靠的方法来从幻数获得MIME。

我的下一个select是有一个合理的图像文件幻数列表,并咨询他们。 然而,find这样的幻数是相对困难的(例如gif具有不同的幻数,其中一些可能非常罕见 – 如果内存服务我)。

在windows上比较图像的工具

通过命令行拍摄的AndroID屏幕截图的图像格式

如何将BitmAPImage保存到本地文件夹windowsapp store

C#forms的图片框来显示一个纯色,而不是一个图像

我需要做些什么来将DIB转换为BMP?

一个更好的主意是可以做这种事情的一些linux程序。

有任何想法吗? 我正在运行RHEL和PHP 5.3。 我有root权限 – 即能够安装的东西,如果需要的话。

– 克里斯。

防止盗链图像文件

为什么使用图像扩展名的文件正在作为一个PHP文件执行?

如何使用硬件vIDeo缩放器?

如何在terminal中recursion地在Ubuntu中批量调整图像大小?

绘制窗口到图像文件

最好的答案(我从Shrapnel上校确定的)将是使用:

$handle = imagecreatefromstring($data);

引用PHP手册:

图像资源将成功返回。 如果图像类型不受支持,数据格式不正确,或者图像损坏,无法加载,则返回FALSE。

标准的file工具可能是你正在寻找的。 它使用一个幻数的表来标识文件格式:

$ file test.jpg test.jpg: JPEG image data,JFIF standard 1.01

如果你不想创建一个临时文件,你可以使用file -并将数据传送到它的标准输入。 确保你注意到子进程的终止,因为file将写入它的输出,并且只要它已经读取了足够的流来确定格式就停止。

也有finfo: http ://PHP.net/manual/en/function.finfo-open.PHP很多在这个PHP.net手册页上的工作代码。

此外,您可以检查您的数据流的前3个字节,应该有图像文件头数据,它标识图像文件格式。

如果我是你,我会避免使用imagecreatefromstring解决方案,如果你只需要确定它是否是一个图像,因为这将创建图像资源时使用额外的内存。 它也只支持JPEG,PNG,GIF,WBMP和GD2。 而其他同样有效的图像格式将无效,例如。 ICO。

我会使用finfo建议或如果你没有PECL扩展名,我建议file -bi image... 因为它会返回内容类型,例如。 image/png 。 你可以检查它是否开始与image/* 。 这样你的脚本就可以接受任何图像格式。

我认为标准的getimagesize()就足够了。


当然,这需要一个文件,这是不是一个大问题。

总结

以上是内存溢出为你收集整理的查找文件数据是否为图像(php)全部内容,希望文章能够帮你解决查找文件数据是否为图像(php)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1282376.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存