В соответствии с php.net для функции getimagesize:
Индекс 2 является одной из констант IMAGETYPE_XXX, указывающих тип
изображение.
Однако когда я использую getimagesize, я получаю значения констант вместо этого. Например, это для GIF:
Array
(
[0] => 1246
[1] => 1397
[2] => 1
[3] => width="1246" height="1397"[bits] => 6
[channels] => 3
[mime] => image/gif
)
И это для PNG:
Array
(
[0] => 900
[1] => 900
[2] => 3
[3] => width="900" height="900"[bits] => 8
[mime] => image/png
)
Я ожидаю получить IMAGETYPE_GIF или IMAGETYPE_PNG вместо 1 и 3.
Я могу справиться с этим в своем приложении, но мне интересно, почему я получаю значения вместо констант.
Моя версия PHP 5.6.14. На случай, если это связано, расширения GD и exif установлены и включены. Я просто звоню
getimagesize($pathToImage)
без второго параметра.
Константа состоит только из ее значения. Это эффективно является значение, просто под другим именем.
IMAGETYPE_GIF === 1 // true
Это в основном то же самое, что сказать, что ты не ожидал
echo 0xff;
печатать 255
, но 0xff
,
0xff
является 255
,
Это просто разные понятные человеку представления для одного и того же значения.
Других решений пока нет …