有没有人知道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'];
答案 0 :(得分:29)
执行此操作:
print_r(get_defined_constants());
然后查找以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
如您所见,Flash SWF被视为图像,实际上getimagesize()
能够读取SWF对象的宽度和高度。对我来说,当我第一次发现它时,这似乎是一种好奇心,这就是为什么在这里提到的。
答案 1 :(得分:5)
该索引包含PHP的IMAGETYPE_XXX constants之一的值。可以在该页面的底部找到它们的完整列表。该页面不提供每个页面的实际INT值,但您应该能够打印一些以获取必要的值。如果您正在寻找特定的一个,您也可以进行比较检查:
if ($imageinfo[2] == IMAGETYPE_IFF) {
// Code here
}
答案 2 :(得分:3)
如前所述,在get_defined_constants()中以IMAGETYPE开头的常量列出了支持的图像类型。
但是,如果你只是运行它,它会告诉你哪些支持:
function imageTypes () {
$imageTypes = array();
foreach(get_defined_constants() as $key => $value){
$keyStart = explode('_', $key);
if($keyStart[0] == 'IMAGETYPE'){
array_push($imageTypes, $key);
}
}
return $imageTypes;
}
echo "<pre>";
var_dump(imageTypes());
echo "</pre>";
答案 3 :(得分:2)
答案 4 :(得分:1)
getimagesize
返回以下IMAGETYPE_*
constants之一的值。
答案 5 :(得分:1)
如果您希望将getimagesize()
作为索引2
返回的转换值转换为人类可读的内容,您可以考虑使用类似这样的函数:
$imageTypeArray = array
(
0=>'UNKNOWN',
1=>'GIF',
2=>'JPEG',
3=>'PNG',
4=>'SWF',
5=>'PSD',
6=>'BMP',
7=>'TIFF_II',
8=>'TIFF_MM',
9=>'JPC',
10=>'JP2',
11=>'JPX',
12=>'JB2',
13=>'SWC',
14=>'IFF',
15=>'WBMP',
16=>'XBM',
17=>'ICO',
18=>'COUNT'
);
$size = getimagesize($filename);
$size[2] = $imageTypeArray[$size[2]];
或类似的东西。
答案 6 :(得分:0)
图像常数上面提到的页面只给图像常量名称,而不是图像常量中存储的整数。上面的脚本确实给出了整数,但我在http://www.php.net/manual/en/function.exif-imagetype.php的官方PHP手册页上找到了整数的列表
答案 7 :(得分:0)
请注意,在某些情况下,getimagesize
会返回false
,例如,svn
对象可能会发生这种情况。