Mbstring must be loaded before exif. PHP setup program put them in the wrong order in the ini file and I couldn't use exif at all. Had to switch order in the ini file for it to work.
XXXIV. Exif 関数
導入
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 string
exif.encode_unicode は、UNICODE ユーザコメント を処理する文字セットを定義します。デフォルトは ISO-8859-15 で、 アジア以外のほとんどの国で動作します。この設定は、空白 あるいは mbstring のサポートするエンコーディングである必要があります。 空白の場合は mbstring の内部エンコーディング設定が使用されます。
- exif.decode_unicode_motorola string
exif.decode_unicode_motorola は、画像の バイトオーダーがモトローラ形式(ビッグエンディアン)であった場合に Unicode のユーザコメントを扱うための内部文字セットを定義します。 この設定は空白にすることはできず、mbstring がサポートしている エンコーディングの中から指定します。デフォルトは UCS-2BE です。
- exif.decode_unicode_intel string
exif.decode_unicode_intel は、画像の バイトオーダーがインテル形式(リトルエンディアン)であった場合に Unicode のユーザコメントを扱うための内部文字セットを定義します。 この設定は空白にすることはできず、mbstring がサポートしている エンコーディングの中から指定します。デフォルトは UCS-2LE です。
- exif.encode_jis string
exif.encode_jis は、JIS ユーザコメントを 処理する文字セットを定義します。デフォルトは空白で、これは mbstring の内部設定を使用させることを意味します。
- exif.decode_jis_motorola string
exif.decode_jis_motorola は、画像の バイトオーダーがモトローラ形式(ビッグエンディアン)であった場合に JIS のユーザコメントを扱うための内部文字セットを定義します。 この設定は空白にすることはできず、mbstring がサポートしている エンコーディングの中から指定します。デフォルトは JIS です。
- exif.decode_jis_intel string
exif.decode_jis_intel は、画像の バイトオーダーがインテル形式(リトルエンディアン)であった場合に JIS のユーザコメントを扱うための内部文字セットを定義します。 この設定は空白にすることはできず、mbstring がサポートしている エンコーディングの中から指定します。デフォルトは JIS です。
リソース型
リソース型は定義されていません。
定義済み定数
以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
- EXIF_USE_MBSTRING (integer)
exif_imagetype() は、関連するいくつかの組み込み定数を 一覧表示します。
- 目次
- exif_imagetype -- イメージの型を定義する
- exif_read_data -- JPEG あるいは TIFF から EXIF ヘッダを読み込む
- exif_tagname -- インデックスに対応するヘッダ名を取得する
- exif_thumbnail -- TIFF あるいは JPEG 形式の画像に埋め込まれたサムネイルを取得する
- read_exif_data -- exif_read_data() のエイリアス
here the link to my exif data remover function:
http://robert-beran.de/dl.php?id=4
its written in php so you can use it to remove jpg exif data in your php projects.
greetz
Robert
exif.encode_unicode string
exif.encode_unicode defines the characterset UNICODE user comments are handled. This defaults to ISO-8859-15 which should work for most non Asian countries. The setting can be empty or must be an encoding supported by mbstring. If it is empty the current internal encoding of mbstring is used.
How come ISO-8859-15 works for most non-Asian countries? It's only for West European and does NOT work for Russian, Greek, Albanian, Polish, Czech, and so forth. The default should be 'UTF-8'
