De temps en temps j'obtiens des erreurs PHP des utilisateurs de mon site en téléchargeant des photos, et les données EXIF ne sont pas valides UTF-8 lorsque j'essaie par la suite json_encode
il. L'erreur spécifique que j'obtiens est:Essayer de comprendre exif.encode_unicode
E_WARNING: json_encode(): Invalid UTF-8 sequence in argument
Ceci est généré par la dernière ligne du code ci-dessous.
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));
Comme vous pouvez le voir, je régler l'option exif.encode_unicode
-UTF-8
, bien que je ne suis pas 100% sûr de ce que cela fait (la phrase « exif.encode_unicode définit les commentaires utilisateur characterset UNICODE sont traitées » dans le manuel semble assez ambigu/confus pour moi), mais de toute façon, il n'a pas résolu le problème.
Est-ce que quelqu'un sait exactement ce que cette option de configuration fait? Ou ce qui cause mon E_WARNING
?
Nous vous remercions de votre excellente réponse. En utilisant les extraits ci-dessus, j'ai pu déterminer que les problèmes étaient dus à l'encodage JSON de la balise EXIF 'MakerNote' qui, sur la base d'une recherche plus approfondie, ne fonctionnerait pas dans la majorité des cas. . – Alex