PHP 7.2上的exif_read_data不会返回所有元数据

时间:2018-11-25 11:37:03

标签: php image metadata exif

在PHP 7.2上,内置函数exif_read_data向PHP 7.1返回不同的信息

这是我使用7.2时得到的:

php -r 'var_export(exif_read_data("x.jpg", "ANY_TAG"));'

array (
  'FileName' => 'x.jpg',
  'FileDateTime' => 1543144462,
  'FileSize' => 3564506,
  'FileType' => 2,
  'MimeType' => 'image/jpeg',
  'SectionsFound' => 'ANY_TAG, IFD0, EXIF',
  'COMPUTED' => 
  array (
    'html' => 'width="3968" height="2976"',
    'Height' => 2976,
    'Width' => 3968,
    'IsColor' => 1,
    'ByteOrderMotorola' => 1,
  ),
  'ImageWidth' => 3968,
  'ImageLength' => 2976,
  'BitsPerSample' => 
  array (
    0 => 8,
    1 => 8,
    2 => 8,
  ),
  'ImageDescription' => 'ptr',
  'Make' => 'HUAWEI',
  'Model' => 'STF-L09',
  'Orientation' => 0,
  'XResolution' => '72/1',
  'YResolution' => '72/1',
  'ResolutionUnit' => 2,
  'Software' => 'STF-L09C432B120',
  'DateTime' => '2018:11:24 15:11:58',
  'YCbCrPositioning' => 1,
)

但是当我在7.1上运行完全相同的代码时,我得到了更多的EXIF数据:

array (
  'FileName' => 'x.jpg',
  'FileDateTime' => 1543144462,
  'FileSize' => 3564506,
  'FileType' => 2,
  'MimeType' => 'image/jpeg',
  'SectionsFound' => 'ANY_TAG, IFD0, THUMBNAIL, EXIF, GPS, INTEROP',
  'COMPUTED' => 
  array (
    'html' => 'width="3968" height="2976"',
    'Height' => 2976,
    'Width' => 3968,
    'IsColor' => 1,
    'ByteOrderMotorola' => 1,
    'ApertureFNumber' => 'f/2.2',
    'Thumbnail.FileType' => 2,
    'Thumbnail.MimeType' => 'image/jpeg',
    'Thumbnail.Height' => 384,
    'Thumbnail.Width' => 512,
  ),
  'ImageWidth' => 3968,
  'ImageLength' => 2976,
  'BitsPerSample' => 
  array (
    0 => 8,
    1 => 8,
    2 => 8,
  ),
  'ImageDescription' => 'ptr',
  'Make' => 'HUAWEI',
  'Model' => 'STF-L09',
  'Orientation' => 0,
  'XResolution' => '72/1',
  'YResolution' => '72/1',
  'ResolutionUnit' => 2,
  'Software' => 'STF-L09C432B120',
  'DateTime' => '2018:11:24 15:11:58',
  'YCbCrPositioning' => 1,
  'Exif_IFD_Pointer' => 280,
  'GPS_IFD_Pointer' => 8454,
  'DeviceSettingDescription' => 'ipp' . "\0" . '',
  'THUMBNAIL' => 
  array (
    'ImageWidth' => 512,
    'ImageLength' => 384,
    'Compression' => 6,
    'Orientation' => 0,
    'XResolution' => '72/1',
    'YResolution' => '72/1',
    'ResolutionUnit' => 2,
    'JPEGInterchangeFormat' => 8802,
    'JPEGInterchangeFormatLength' => 31647,
  ),
  'DocumentName' => NULL,
  'ExposureTime' => '30000000/1000000000',
  'FNumber' => '220/100',
  'ExposureProgram' => 2,
  'ISOSpeedRatings' => 320,
  'ExifVersion' => '0210',
  'DateTimeOriginal' => '2018:11:24 15:11:58',
  'DateTimeDigitized' => '2018:11:24 15:11:58',
  'ComponentsConfiguration' => '' . "\0" . '',
  'ShutterSpeedValue' => '298973/10000',
  'ApertureValue' => '227/100',
  'BrightnessValue' => '0/1',
  'ExposureBiasValue' => '0/10',
  'MeteringMode' => 5,
  'LightSource' => 1,
  'Flash' => 0,
  'FocalLength' => '3950/1000',
  'MakerNote' => 'Auto',
  'SubSecTime' => '405238',
  'SubSecTimeOriginal' => '405238',
  'SubSecTimeDigitized' => '405238',
  'FlashPixVersion' => '0100',
  'ColorSpace' => 1,
  'ExifImageWidth' => 3968,
  'ExifImageLength' => 2976,
  'InteroperabilityOffset' => 8424,
  'SensingMethod' => 2,
  'FileSource' => '',
  'SceneType' => '',
  'CustomRendered' => 1,
  'ExposureMode' => 0,
  'WhiteBalance' => 0,
  'DigitalZoomRatio' => '100/100',
  'FocalLengthIn35mmFilm' => 27,
  'SceneCaptureType' => 0,
  'GainControl' => 0,
  'Contrast' => 0,
  'Saturation' => 0,
  'Sharpness' => 0,
  'SubjectDistanceRange' => 0,
  'GPSVersion' => '' . "\0" . '' . "\0" . '',
  'GPSLatitudeRef' => 'N',
  'GPSLatitude' => 
  array (
    0 => '51/1',
    1 => '8/1',
    2 => '49994201/1000000',
  ),
  'GPSLongitudeRef' => 'W',
  'GPSLongitude' => 
  array (
    0 => '2/1',
    1 => '42/1',
    2 => '59101467/1000000',
  ),
  'GPSAltitudeRef' => '' . "\0" . '',
  'GPSAltitude' => '7162/100',
  'GPSTimeStamp' => 
  array (
    0 => '15/1',
    1 => '11/1',
    2 => '58/1',
  ),
  'GPSProcessingMode' => 'GPS' . "\0" . '',
  'GPSDateStamp' => '2018:11:24',
  'InterOperabilityIndex' => 'R98',
  'InterOperabilityVersion' => '0100',
)

使用7.2时,是否可以进行任何模块,扩展或更改以获得完整的EXIF数据?我在共享的Linux主机上,因此我只能做些限制。

1 个答案:

答案 0 :(得分:0)

这似乎是PHP中的错误-https://bugs.php.net/bug.php?id=72682https://abi-laboratory.pro/index.php?view=changelog&l=php&v=7.2.3

唯一的答案是降级-或升级-没有错误的版本。