PHP / (mal) datos / advertencias exif, ¿qué hacer?

Estoy escribiendo un pequeño script que reúne un par de valores exif de las imágenes ... a saber, la fecha de creación, marca y modelo.

Me doy cuenta (particularmente con la imagen enviada por correo a través de la aplicación de correo predeterminada de iPhone) que los datos exif han sido alterados, lo cual es un problema conocido (la aplicación de correo comprime las imágenes antes de enviarlas, incluso cuando se selecciona 'tamaño completo'). Los valores que busco parecen estar allí, aunque recibo advertencias de PHP al acceder a ellos. En realidad, no hay problemas para obtener los valores, pero la advertencia obviamente no funciona para mí.

Calling ini_set ('display_errors', 0) oculta las advertencias, pero me parece descuidado. ¿Hay alguna forma de ignorar esta advertencia, en este script, para este escenario que es un poco mejor?

Mi pensamiento inicial fue envolver todo en un intento / captura, pero la advertencia todavía se muestra prominentemente en la página.

Simplemente estoy usando la función estándar exif_read_data (), creo que una biblioteca externa sería un poco demasiado para lo poco que necesito.

PHP:

if($_GET['i']) {
  $input = strtolower($_GET['i'] . ".jpg");
  if(file_exists($input)) {
    $exif = exif_read_data($input);
    foreach($exif as $key => $value) {
      if(!in_array($key, Array("DateTime","Make","Model"))) {
        unset($exif[$key]);
      }
    }
    ksort($exif);
    print_r($exif);
  }
}

Advertencia

Warning: exif_read_data(trailmarker.jpg) [exif_read_data]: Illegal IFD size: x00C4 + 2 + x3239*12 = x25B70 > x2B74 in C:\xampp\htdocs\exif\dumpfolder\exif.php on line 5

Respuestas a la pregunta(2)

Su respuesta a la pregunta