PHP getimagesize()返回什么样的文件类型?

Jas*_*vis 11 php getimagesize

有谁知道PHP的getimagesize()函数返回的第3个值的所有可能结果?示例此代码将返回:

  • $imageinfo['2'] = 2;对于jpg图像,
  • $imageinfo['2'] = 3;对于png图像,
  • $imageinfo['2'] = 0;对于gif图像.

上面的数字可能不正确,但你明白了.

我无法在php.net或其他任何地方找到第3个值的所有可能结果的列表.

$imageinfo = getimagesize($imageurl);
$image_type  = $imageinfo['2'];
Run Code Online (Sandbox Code Playgroud)

Ion*_*tan 29

执行:

print_r(get_defined_constants());
Run Code Online (Sandbox Code Playgroud)

然后查找以IMAGETYPE_为前缀的常量.在我的PHP 5.3安装上,我得到了以下值:

[IMAGETYPE_GIF] => 1
[IMAGETYPE_JPEG] => 2
[IMAGETYPE_PNG] => 3
[IMAGETYPE_SWF] => 4
[IMAGETYPE_PSD] => 5
[IMAGETYPE_BMP] => 6
[IMAGETYPE_TIFF_II] => 7
[IMAGETYPE_TIFF_MM] => 8
[IMAGETYPE_JPC] => 9
[IMAGETYPE_JP2] => 10
[IMAGETYPE_JPX] => 11
[IMAGETYPE_JB2] => 12
[IMAGETYPE_SWC] => 13
[IMAGETYPE_IFF] => 14
[IMAGETYPE_WBMP] => 15
[IMAGETYPE_JPEG2000] => 9
[IMAGETYPE_XBM] => 16
[IMAGETYPE_ICO] => 17
[IMAGETYPE_UNKNOWN] => 0
[IMAGETYPE_COUNT] => 18
Run Code Online (Sandbox Code Playgroud)

如您所见,Flash SWF被视为图像,实际上getimagesize()能够读取SWF对象的宽度和高度.对我而言,当我第一次发现它时,这似乎是一种好奇心,这就是为什么在这里提到它.


Ste*_*iec 5

该索引包含PHP的IMAGETYPE_XXX常量之一的.可以在该页面的底部找到它们的完整列表.该页面不提供每个页面的实际INT值,但您应该能够打印一些以获取必要的值.如果您正在寻找特定的一个,您还可以进行比较检查:

if ($imageinfo[2] == IMAGETYPE_IFF) {
  // Code here
}
Run Code Online (Sandbox Code Playgroud)