画像の種類を判別する

# exif_imagetype

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

exif_imagetype — 画像の種類を判別する

### 説明

function exif_imagetype(string `$filename`): int|false

exif_imagetype() は画像の先頭バイトを読み、 そのサインを調べます。

exif_imagetype() は、他の exif 関数がサポートしていないファイル形式で コールされるの防いだり、$_SERVER['HTTP_ACCEPT'] と組み合わせて閲覧者が画像を見る権限を持っているかどうかを調べたりするために 使用可能です。

### パラメータ

`filename`
  調べる画像。

### 戻り値

正しいサインが見つかった場合は適切な定数、それ以外の場合は `false` を返します。戻り値は getimagesize() がインデックス 2 に対して返す値と同じですが、exif_imagetype() のほうがずっと早く動作します。

以下の定数が定義されており、exif_imagetype() の戻り値を表しています。

Imagetype 定数
値 | 定数
--- | ---
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`
18 | `IMAGETYPE_WEBP`
19 | `IMAGETYPE_AVIF`
20 | `IMAGETYPE_HEIF`

> 注意: 画像の形式を判別するために必要なだけのバイト数を読み込めない場合、 exif_imagetype() は `E_NOTICE` を発行して `false` を返します。

### 変更履歴

バージョン | 説明
--- | ---
7.1.0 | WebP をサポートしました
8.1.0 | AVIF をサポートしました。
8.5.0 | HEIF をサポートしました。

### 例

例1 exif_imagetype() の例

    <?php
    if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
        echo 'The picture is not a gif';
    }
    ?>

### 参考

- image_type_to_mime_type() - getimagesize, exif_read_data, exif_thumbnail, exif_imagetypeから返される 画像形式のMIMEタイプを取得する
- getimagesize() - 画像の大きさを取得する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open