Dados / avisos PHP / (ruins) exif, o que fazer?

Estou escrevendo um pequeno script que reúne alguns valores exif das imagens ... ou seja, a data de criação, marca e modelo.

Percebo (especialmente com imagens enviadas por meio do aplicativo de email padrão do iPhone) que os dados exif foram alterados, o que é um problema conhecido (o aplicativo de email compacta imagens antes de enviá-las, mesmo quando 'tamanho completo' é selecionado). Os valores que estou procurando parecem estar lá, apesar de receber avisos do PHP acessando-os. Na verdade, não há problemas para obter os valores, mas o aviso obviamente não está funcionando para mim.

Chamar ini_set ('display_errors', 0) oculta os avisos, mas me parece desleixado. Existe alguma maneira de ignorar esse aviso, neste script, para esse cenário um pouco melhor?

Meu pensamento inicial foi agrupar tudo em uma tentativa / captura, mas o aviso ainda é exibido com destaque na página.

Estou simplesmente usando a função exif_read_data () padrão, acho que uma biblioteca externa seria um pouco demais para o pouco que eu preciso.

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);
  }
}

Aviso:

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

questionAnswers(2)

yourAnswerToTheQuestion