PHP best way to check if file is an image

The getimagesize function of php provides lot of information about an image file , including its type. The type can be used to check if the file is a valid image file or not.

To check if a file is an image or not, use the function


function is_image($path)
{
	$a = getimagesize($path);
	$image_type = $a[2];
	
	if(in_array($image_type , array(IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG , IMAGETYPE_BMP)))
	{
		return true;
	}
	return false;
}

$a[0] and $a[1] are the width and height of the image.
$a[2] has the image type.

Other image formats include :

[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

Note :

1. mpeg videos are detected as IMAGETYPE_ICO !!







Last Updated On : 23rd October 2011

Subscribe to get updates delivered to your inbox

4 Comments + Add Comment

  • Thank You :D

  • Hey, this is a really good solution. I spent ages looking for a decent function in the php manual, but this really solves my problem!
    Thanks a lot!
    Tristram

  • it’s really helpfull !

    i simply added “@” before the getimagesize to prevent php outputing error messages on screen if it fails getting image size :
    $a = @getimagesize($path);

    Thanx :D

Leave a comment