2

检测 URL 是图像 URL 的最佳方法是什么?

4

5 回答 5

9

使用 PHP:

  • 最安全 - 获取实际的图像数据。通过getimagesize()实际读取文件内的标头字节来确定图像类型。

  • 最快 - 获取资源,解析响应标头并查找content-type标头。这种方法不如第一种可靠:服务器可能在撒谎,或者配置错误。

  • 更快 - 对 URL 执行 HEAD 请求,然后查找content-type标头。可能不适用于动态图像资源。我没有这方面的经验,所以里程可能会有所不同。

  • 极度偏执的最安全但很慢 - 使用 PHP 获取实际的图像数据,使用 GD 库将它们复制到新的图像资源中,然后保存结果。如果此过程成功,则可以保证它是有效的、未受污染的图像。资源密集型;浏览器支持但 GD 不支持的一些有效图像格式将落在表中。

我会选择第一个选项。

使用 JavaScript:

  • 将图像资源加载到img元素中。如果onload事件触发,并且图像随后具有物理尺寸,则浏览器设法加载图像。
于 2010-12-14T23:47:38.767 回答
2

可以看看HTTP标头吗?只是一个想法。

于 2010-12-14T23:46:11.500 回答
2

一旦您请求了该 URL 的 HTTP 连接,请尝试检查响应的标头...尝试查找 mime 类型。

于 2010-12-14T23:46:51.373 回答
1
  • 检查标头
  • 检查 url 中的扩展名(.gif/ .png 等)
于 2010-12-14T23:48:39.923 回答
1

如果您只有 URL 而不是服务器在您请求 URL 时会给您的响应,那么您唯一能做的就是根据文件扩展名猜测,但不能保证以 .jpg 结尾的文件是图像或以 .php 结尾的文件不是图像。

您可能会很高兴以 .jpg、.gif、.png 等结尾的 url 将成为图像,但不能保证。

对于其他任何事情,除非您重新获取它,否则它基本上是不可能的。

于 2010-12-14T23:49:58.190 回答