それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

php で画像ファイル形式を判別する方法

php で画像ファイル形式を判別する方法

  1. getimagesize
  2. exif_imagetype
  3. mime_content_type

の各館数のどれかで取得することが出来る。

各関数とモジュール

各関数はそれぞれがモジュールに含まれている。

関数名 モジュール名
getimagesize GD
exif_imagetype Exif
mime_content_type FileInfo

これら関数を使うには、それぞれモジュールがインストールされていることが必要。
モジュールの有無はphpinfo();関数を使って確認する。

値の取り方

それぞれの関数はそれぞれ使い方が異なる

mime_content_type

mime_content_typeはそのものズバリな名前が帰ってくる。

<?php
mime_content_type("test.jpg"); #=> "image/jpeg"
getimagesize の場合
<?php
$ret = getimagesize("test.php");
echo "/",$ret["mime"]; #=> "image/jpeg"
$is_image =  explode("/",$ret["mime"])[0] == "image"; //画像判定 
exif_imagetype

exif_imagetypeは形式をINT定数で返す

Value Constant
1 IMAGETYPE_GIF
2 IMAGETYPE_JPEG
3 IMAGETYPE_PNG
4 IMAGETYPE_SWF
5 IMAGETYPE_PSD
6 IMAGETYPE_BMP
7 IMAGETYPE_TIFF_II (intel byte order)
8 IMAGETYPE_TIFF_MM (motorola byte order)
9 IMAGETYPE_JPC
10 IMAGETYPE_JP2
11 IMAGETYPE_JPX
12 IMAGETYPE_JB2
13 IMAGETYPE_SWC
14 IMAGETYPE_IFF
15 IMAGETYPE_WBMP
16 IMAGETYPE_XBM
17 IMAGETYPE_ICO

http://jp.php.net/manual/en/function.exif-imagetype.php