Получить EXIF данные о изображении PHP
В php есть функция, которая возвращает EXIF данные о изображении, если они есть. В первом параметре принимает путь к файлы, во втором параметре необходимо передать 0 для полного просмотра всех имеющихся заголовков, в третьем true, чтобы получить ассоциативный массив. В примере ниже, фотография лежит в папке со скриптом, с именем 2022-02-08 10-26-48.JPG, пример кода:
<?php $exif = exif_read_data('2022-02-08 10-26-48.JPG', 0, true); print_r($exif); ?>
В моем случае результат такой:
Array ( [FILE] => Array ( [FileName] => 2022-02-08 10-26-48.JPG [FileDateTime] => 1650551038 [FileSize] => 3370156 [FileType] => 2 [MimeType] => image/jpeg [SectionsFound] => ANY_TAG, IFD0, THUMBNAIL, EXIF ) [COMPUTED] => Array ( => width='4032' height='3024' [Height] => 3024 [Width] => 4032 [IsColor] => 1 [ByteOrderMotorola] => 1 [ApertureFNumber] => f/1.8 [Thumbnail.FileType] => 2 [Thumbnail.MimeType] => image/jpeg ) [IFD0] => Array ( [Make] => Apple [Model] => iPhone 11 Pro Max [Orientation] => 1 [XResolution] => 72/1 [YResolution] => 72/1 [ResolutionUnit] => 2 [Software] => 15.3 [DateTime] => 2022:02:08 10:26:48 [HostComputer] => iPhone 11 Pro Max [YCbCrPositioning] => 1 [Exif_IFD_Pointer] => 230 ) [THUMBNAIL] => Array ( [Compression] => 6 [XResolution] => 72/1 [YResolution] => 72/1 [ResolutionUnit] => 2 [JPEGInterchangeFormat] => 2286 [JPEGInterchangeFormatLength] => 10026 ) [EXIF] => Array ( [ExposureTime] => 1/827 [FNumber] => 9/5 [ExposureProgram] => 2 [ISOSpeedRatings] => 32 [ExifVersion] => 0232 [DateTimeOriginal] => 2022:02:08 10:26:48 [DateTimeDigitized] => 2022:02:08 10:26:48 [UndefinedTag:0x9010] => +03:00 [UndefinedTag:0x9011] => +03:00 [UndefinedTag:0x9012] => +03:00 [ComponentsConfiguration] => [ShutterSpeedValue] => 37537/3873 [ApertureValue] => 54823/32325 [BrightnessValue] => 496373/59543 [ExposureBiasValue] => 0/1 [MeteringMode] => 5 [Flash] => 16 [FocalLength] => 17/4 [SubjectLocation] => Array ( [0] => 2002 [1] => 1505 [2] => 2213 [3] => 1324 ) [MakerNote] => Apple iOS [SubSecTimeOriginal] => 553 [SubSecTimeDigitized] => 553 [FlashPixVersion] => 0100 [ColorSpace] => 65535 [ExifImageWidth] => 4032 [ExifImageLength] => 3024 [SensingMethod] => 2 [SceneType] => [ExposureMode] => 0 [WhiteBalance] => 0 [FocalLengthIn35mmFilm] => 26 [SceneCaptureType] => 0 [UndefinedTag:0xA432] => Array ( [0] => 807365/524263 [1] => 6/1 [2] => 9/5 [3] => 12/5 ) [UndefinedTag:0xA433] => Apple [UndefinedTag:0xA434] => iPhone 11 Pro Max back triple camera 4.25mm f/1.8 [UndefinedTag:0xA460] => 2 ) )
Так как изображение никак не обрабатывалось, данные наиболее полные.
После небольшой обработки в adobe photoshop, появились дополнительные данные:
Array ( [FILE] => Array ( [FileName] => mfdf.jpg [FileDateTime] => 1650551864 [FileSize] => 5614920 [FileType] => 2 [MimeType] => image/jpeg [SectionsFound] => ANY_TAG, IFD0, THUMBNAIL, EXIF ) [COMPUTED] => Array ( => width='4032' height='3024' [Height] => 3024 [Width] => 4032 [IsColor] => 1 [ByteOrderMotorola] => 1 [ApertureFNumber] => f/1.8 [Thumbnail.FileType] => 2 [Thumbnail.MimeType] => image/jpeg ) [IFD0] => Array ( [ImageWidth] => 4032 [ImageLength] => 3024 [BitsPerSample] => Array ( [0] => 8 [1] => 8 [2] => 8 ) [PhotometricInterpretation] => 2 [Make] => Apple [Model] => iPhone 11 Pro Max [Orientation] => 1 [SamplesPerPixel] => 3 [XResolution] => 720000/10000 [YResolution] => 720000/10000 [ResolutionUnit] => 2 [Software] => Adobe Photoshop CC 2014 (Windows) [DateTime] => 2022:04:21 17:37:42 [HostComputer] => iPhone 11 Pro Max [YCbCrPositioning] => 1 [Exif_IFD_Pointer] => 324 ) [THUMBNAIL] => Array ( [Compression] => 6 [XResolution] => 72/1 [YResolution] => 72/1 [ResolutionUnit] => 2 [JPEGInterchangeFormat] => 1058 [JPEGInterchangeFormatLength] => 6502 ) [EXIF] => Array ( [ExposureTime] => 1/827 [FNumber] => 9/5 [ExposureProgram] => 2 [ISOSpeedRatings] => 32 [ExifVersion] => 0232 [DateTimeOriginal] => 2022:02:08 10:26:48 [DateTimeDigitized] => 2022:02:08 10:26:48 [UndefinedTag:0x9010] => +03:00 [UndefinedTag:0x9011] => +03:00 [UndefinedTag:0x9012] => +03:00 [ComponentsConfiguration] => [ShutterSpeedValue] => 37537/3873 [ApertureValue] => 54823/32325 [BrightnessValue] => 496373/59543 [ExposureBiasValue] => 0/1 [MeteringMode] => 5 [Flash] => 16 [FocalLength] => 17/4 [SubjectLocation] => Array ( [0] => 2002 [1] => 1505 [2] => 2213 [3] => 1324 ) [SubSecTimeOriginal] => 553 [SubSecTimeDigitized] => 553 [FlashPixVersion] => 0100 [ColorSpace] => 65535 [ExifImageWidth] => 4032 [ExifImageLength] => 3024 [SensingMethod] => 2 [SceneType] => [ExposureMode] => 0 [WhiteBalance] => 0 [FocalLengthIn35mmFilm] => 26 [SceneCaptureType] => 0 [UndefinedTag:0xA432] => Array ( [0] => 807365/524263 [1] => 6/1 [2] => 9/5 [3] => 12/5 ) [UndefinedTag:0xA433] => Apple [UndefinedTag:0xA434] => iPhone 11 Pro Max back triple camera 4.25mm f/1.8 [UndefinedTag:0xA460] => 2 ) )
А после сохранения в режиме «Сохранить для WEB», данных стало существенно меньше
Array ( [FILE] => Array ( [FileName] => fhrr4900.jpg [FileDateTime] => 1650552077 [FileSize] => 363310 [FileType] => 2 [MimeType] => image/jpeg [SectionsFound] => IFD0, APP12 ) [COMPUTED] => Array ( => width='800' height='600' [Height] => 600 [Width] => 800 [IsColor] => 1 [ByteOrderMotorola] => 0 ) [APP12] => Array ( [Company] => Ducky [Info] => ) )