サイトのユーザーが写真をアップロードしているときに PHP エラーが発生することがあり、後で試してみると、EXIF データが有効な UTF-8 ではありませんjson_encode
。私が得る特定のエラーは次のとおりです。
E_WARNING: json_encode(): Invalid UTF-8 sequence in argument
これは、以下のコードの最終行によって生成されます。
ini_set('exif.encode_unicode', 'UTF-8');
$exif_data = exif_read_data($uploader_target_dir . $_POST['uploader_' . $i . '_tmpname']);
$when_photo_taken = isset($exif_data['DateTime']) ? (int)strtotime($exif_data['DateTime']) : 0;
$exif_data = (json_encode($exif_data));
ご覧のとおり、exif.encode_unicode
オプションをUTF-8
に設定していますが、これが何をするのか 100% 確信があるわけではありません (マニュアルの「exif.encode_unicode は、文字セット UNICODE ユーザー コメントが処理されることを定義します」という文は、かなりあいまい/混乱しているようです。私)、どちらにしても問題は解決していません。
この構成オプションの機能を正確に知っている人はいますか? または何が私の原因E_WARNING
ですか?