Date de prise de vue via EXIF en PHP

Fermé
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 - Modifié le 3 mars 2019 à 10:17
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 - 8 mars 2019 à 14:19
Bonjour,
Pour afficher un album photo je vais chercher la date de prise de vue dans les données EXIF des fichiers .jpg et je trie les photos selon cette date.
J'utilise le code suivant
$exif_data = exif_read_data($file,0,true);
$Date=$exif_data['EXIF']['DateTimeDigitized'];

Ceci fonctionnait très bien mais je viens de m'apercevoir que ça ne fonctionne plus, plus exactement pour certaines photos j'obtiens bien la date (par exemple "2018:09:13 12:25:52", pour d'autres je n'obtiens rien du tout alors que dans l'explorateur Windows (volet des détails) je vois bien la date de prise de vue des deux.

Y a-t-il une différence à ce niveau entre les 2 versions de PHP ?
Merci d'avance
A voir également:

8 réponses

yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
3 mars 2019 à 11:55
bonjour, peux-tu en dire plus à propos de ces deux versions?
tu peux aussi déterminer tous les attributes exif d'une image avec la méthode décrite en https://www.php.net/manual/fr/function.exif-read-data.php
0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
Modifié le 3 mars 2019 à 12:50
C'est justement ce que je cherche, quelle est la différence entre ces 2 versions.

Si je liste tous les tags comme ans l'exemple que tu donnes (voir ci-dessous)
l'image 088 me donne bien la date de prise de vue, pas l'image 087 : pourquoi ?
alors que l'explorateur Windows me donne bien la date de prise de vue pour les deux
qu'avant (avant le passage à PHP 7.2 ?) ça fonctionnait bien
et que les 2 photos ont été prises à quelques minutes d'intervalle avec le même appareil photo

087.jpg
FILE.FileName: Temp.jpeg
FILE.FileDateTime: 1551612118
FILE.FileSize: 207641
FILE.FileType: 2
FILE.MimeType: image/jpeg
FILE.SectionsFound: ANY_TAG, IFD0
COMPUTED.html: width="1200" height="800"
COMPUTED.Height: 800
COMPUTED.Width: 1200
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 0
IFD0.ImageWidth: 1600
IFD0.ImageLength: 1067
IFD0.XResolution: 72/1
IFD0.YResolution: 72/1
IFD0.ResolutionUnit: 2
IFD0.Orientation: 1

088.jpg
FILE.FileName: Temp.jpeg
FILE.FileDateTime: 1551612118
FILE.FileSize: 173968
FILE.FileType: 2
FILE.MimeType: image/jpeg
FILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, EXIF, INTEROP
COMPUTED.html: width="1200" height="800"
COMPUTED.Height: 800
COMPUTED.Width: 1200
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 1
COMPUTED.ApertureFNumber: f/4.8
COMPUTED.Thumbnail.FileType: 2
COMPUTED.Thumbnail.MimeType: image/jpeg
IFD0.ImageDescription: Exif JPEG
IFD0.Make: Camera
IFD0.Model: DC-4300
IFD0.Orientation: 1
IFD0.XResolution: 72/1
IFD0.YResolution: 72/1
IFD0.ResolutionUnit: 2
IFD0.Software: DC-4300
IFD0.DateTime: 2003:01:03 06:42:01
IFD0.YCbCrPositioning: 2
IFD0.Exif_IFD_Pointer: 2306
IFD0.UndefinedTag:0xEA1C: ê
THUMBNAIL.Compression: 6
THUMBNAIL.XResolution: 72/1
THUMBNAIL.YResolution: 72/1
THUMBNAIL.ResolutionUnit: 2
THUMBNAIL.JPEGInterchangeFormat: 4876
THUMBNAIL.JPEGInterchangeFormatLength: 6461
THUMBNAIL.YCbCrPositioning: 2
EXIF.ExposureTime: 1/105
EXIF.FNumber: 48/10
EXIF.ExposureProgram: 2
EXIF.ISOSpeedRatings: 100
EXIF.ExifVersion: 0210
EXIF.DateTimeOriginal: 2011:08:14 09:37:54
EXIF.DateTimeDigitized: 2011:08:14 09:37:54
EXIF.ComponentsConfiguration: 
EXIF.ShutterSpeedValue: 67/10
EXIF.ApertureValue: 46/10
EXIF.ExposureBiasValue: 0/10
EXIF.MaxApertureValue: 31/10
EXIF.MeteringMode: 5
EXIF.LightSource: 0
EXIF.Flash: 0
EXIF.SubSecTimeOriginal: 45
EXIF.SubSecTimeDigitized: 45
EXIF.FlashPixVersion: 0100
EXIF.ColorSpace: 1
EXIF.ExifImageWidth: 1200
EXIF.ExifImageLength: 800
EXIF.InteroperabilityOffset: 4748
EXIF.FileSource: 
EXIF.UndefinedTag:0xEA1C: ê
INTEROP.InterOperabilityVersion: 0100
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
3 mars 2019 à 12:53
0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
3 mars 2019 à 15:35
Et que fait-on dans ce cas là ?
Pourquoi peut-il lire l'Exif de certaines photos et pas d'autres (où est la différence) ?
0
yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
3 mars 2019 à 17:47
c'est un problème php, tu peux peut-être retourner à la version qui fonctionnait, ou bien passer à la version 7.2.3 ou supérieure.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
3 mars 2019 à 18:06
"Avant" avec la version 5.x je n'avais pas de problème, mon provider m'a obligé de passer à 7.
Maintenant je n'ai le choix qu'entre 7.1, 7.2 et 7.3; je viens de passer en 7.3 (au lieu de 7.2) : idem.

Ce qui est surprenant c'est que ça fonctionne pour certaines photos et pas pour d'autres.
Si je savais pourquoi je pourrais peut-être corriger les photos pour lesquelles ça ne fonctionne pas ...
0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
Modifié le 4 mars 2019 à 09:52
J'ai ouvert chaque photo "défectueuse" avec un logiciel de retouche d'image et re-sauvée sans la modifier : ça fonctionne.
Il y a donc peut-être un bug dans PHP 7 mais qui se produit pas pour toutes les photos !

J'ai un autre album qui pose le même problème mais il contient 525 photos : trop fastidieux de les ouvrir une à une; une astuce pour faire la même chose automatiquement ?
0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
6 mars 2019 à 15:23
Pour l'autre album (celui de 525 photos) j'ai beau les ouvrir et les re-sauver une à une,
$exif_data['EXIF']['DateTimeDigitized'] est toujours vide !
0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 8
8 mars 2019 à 14:19
Je n'ai rien changé depuis mon dernier message, ça fonctionne à nouveau !?!
0