如何用php检测src中是否存在二进制图像?

时间:2015-06-05 14:18:18

标签: php

我有一些img标签..我想读取他们的src的内容。

在某些src我有binery代码而不是像这样的普通src:

 data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAIRA6wDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL...

我有没有办法检测它是否是二进制图像?

我试试这个:

$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime = finfo_file($finfo, $fileDIR);
finfo_close($finfo);

但它返回image / jpeg ...

1 个答案:

答案 0 :(得分:1)

如果我的问题正确,您希望能够区分

之类的内容
  • <img src="path/to/myimage.jpg" />

  • <img src="data:image/jpeg;base64,/9j/4A..." />

使用PHP分析HTML文件时,这是正确的吗?

如果是这样,您可以查看src的{​​{1}}属性的内容,并查看它是否以&#34; img&#34;开头。如果(且仅当)是这种情况,您可以假设跟随二进制图像,请参阅详细信息here

因此,如果您在data:内容的开头偶然发现data:,您可以通过解析其余部分来获取图像(可能有关base64编码和/或字符集给出,再看{4}}。否则,您可以访问图像&#34;通常&#34;通过src

中的链接