exif 拡張モジュールを使用すると、画像のメタデータを扱うことが可能と なります。例えば、デジタルカメラで撮影した画像ファイルから JPEG や TIFF 画像のヘッダ情報を 読み込むために exif 関数を使用することができます。
--enable-exif オプションを含めて PHP がコンパイル されている必要があります。exif モジュールを作成するために、追加の ライブラリは一切必要ありません。Windows ユーザは、 mbstring 拡張モジュールを有効に する必要があります。
exif サポートを有効にするには、PHP の configure 時に
--enable-exif
を指定します。
Windows ユーザは、php.ini で php_mbstring.dll および php_exif.dll の両方の DLL を有効にする 必要があります。php_mbstring.dll DLL は、必ず php_exif.dll DLL より 先に 読み込まれていなければなりません。そうなるように php.ini で設定 してください。
php.ini の設定により動作が変化します。
mbstring が有効になっている場合、 Exif 拡張モジュールはユーザコメントの文字エンコーディングの変換 (Unicode と JIS)を自動的に行います。この処理が行われるのは、 指定した文字セットを使用して最初にコメントをデコードする際です。 その結果は、HTTP 出力用の文字コードにエンコード されます。
表 1. Exif 設定オプション
名前 | デフォルト | 変更の可否 | 変更履歴 |
---|---|---|---|
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL | PHP 4.3.0 以降で有効です。 |
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL | PHP 4.3.0 以降で有効です。 |
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL | PHP 4.3.0 以降で有効です。 |
exif.encode_jis | "" | PHP_INI_ALL | PHP 4.3.0 以降で有効です。 |
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL | PHP 4.3.0 以降で有効です。 |
exif.decode_jis_intel | "JIS" | PHP_INI_ALL | PHP 4.3.0 以降で有効です。 |
以下に設定ディレクティブに関する 簡単な説明を示します。
exif.encode_unicode
stringexif.encode_unicode は、UNICODE ユーザコメント を処理する文字セットを定義します。デフォルトは ISO-8859-15 で、 アジア以外のほとんどの国で動作します。この設定は、空白 あるいは mbstring のサポートするエンコーディングである必要があります。 空白の場合は mbstring の内部エンコーディング設定が使用されます。
exif.decode_unicode_motorola
stringexif.decode_unicode_motorola は、画像の バイトオーダーがモトローラ形式(ビッグエンディアン)であった場合に Unicode のユーザコメントを扱うための内部文字セットを定義します。 この設定は空白にすることはできず、mbstring がサポートしている エンコーディングの中から指定します。デフォルトは UCS-2BE です。
exif.decode_unicode_intel
stringexif.decode_unicode_intel は、画像の バイトオーダーがインテル形式(リトルエンディアン)であった場合に Unicode のユーザコメントを扱うための内部文字セットを定義します。 この設定は空白にすることはできず、mbstring がサポートしている エンコーディングの中から指定します。デフォルトは UCS-2LE です。
exif.encode_jis
stringexif.encode_jis は、JIS ユーザコメントを 処理する文字セットを定義します。デフォルトは空白で、これは mbstring の内部設定を使用させることを意味します。
exif.decode_jis_motorola
stringexif.decode_jis_motorola は、画像の バイトオーダーがモトローラ形式(ビッグエンディアン)であった場合に JIS のユーザコメントを扱うための内部文字セットを定義します。 この設定は空白にすることはできず、mbstring がサポートしている エンコーディングの中から指定します。デフォルトは JIS です。
exif.decode_jis_intel
stringexif.decode_jis_intel は、画像の バイトオーダーがインテル形式(リトルエンディアン)であった場合に JIS のユーザコメントを扱うための内部文字セットを定義します。 この設定は空白にすることはできず、mbstring がサポートしている エンコーディングの中から指定します。デフォルトは JIS です。
リソース型は定義されていません。
以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
exif_imagetype() は、関連するいくつかの組み込み定数を 一覧表示します。