Source code of a php function that displays exif data

<?php
function exifimage($image) {
  
$tab = array(); // Tableau de sortie
  
if ( !function_exists'exif_read_data' ) ) { // Si la fonction n'existe pas (serveur trop ancien)
    
$tab[0] = "La fonction exif_read_data n'existe pas sur ce serveur !";
    return 
$tab// On sort immédiatement
  
} elseif (file_exists($image)) { // Sinon on vérifie si l'image existe
    
$exif exif_read_data($image'IFD0'); // Et on lui applique la fonction exif_read_data
    
if ($exif === false) { // Si ça ne donne rien
      
return $tab// On sort
      //$info = 'Aucun en-tête de donnée n\'a été trouvé dans <strong>$image</strong>.<br />';
    
} else { // Si on a trouvé des infos
      //$info = 'L'image <strong>$image</strong> contient des en-têtes :<br />';
      
$exif exif_read_data($image0true);
      foreach (
$exif as $clef => $section) { // On récupère les données pertinentes, section par section
        
if ($clef == 'FILE') {
          
$tab['Nom du fichier'] = (stristr($image'.jpeg')) ? substr($section['FileName'],0,-5) : substr($section['FileName'],0,-4);
          
$tab['Type du fichier'] = $section['MimeType'];
          
$tab['Poids'] = round($section['FileSize']/1024 '0').' Ko';
        } elseif (
$clef == 'COMPUTED') {
          
$tab['Largeur'] = $section['Width'];
          
$tab['Hauteur'] = $section['Height'];
          
$tab['Focale'] = isset($section['ApertureFNumber']) ? strtoupper($section['ApertureFNumber']) : '?';
        } elseif (
$clef == 'EXIF') {
          if (isset(
$section['DateTimeOriginal'])) {
            
$temp $section['DateTimeOriginal'];
            
$espace explode' '$temp );
            
$jour explode':' $espace[0] );
            
$tab['Prise de vue'] = $jour[2].'/'.$jour[1].'/'.$jour[0] .' à '.$espace[1];
          } else 
$tab['Prise de vue'] = '?';
          
$tab['Temps d\'exposition'] = isset($section['ExposureTime']) ? $section['ExposureTime'].' secondes' '?';
          
$tab['Vitesse ISO'] = isset($section['ISOSpeedRatings']) ? 'ISO-'.$section['ISOSpeedRatings'] : '?';
          
$tab['Compensation'] = isset($section['ExposureBiasValue']) ? $section['ExposureBiasValue'] : '?';
          
$tab['Longueur de la focale'] = isset($section['FocalLength']) ? $section['FocalLength'].' mm' '?';
          
$tab['Ouverture maxi'] = isset($section['MaxApertureValue']) ? round($section['MaxApertureValue']/10'1') : '?';
          
$tab['Distance du sujet'] = isset($section['SubjectDistance']) ? round($section['SubjectDistance']/100'1').' m' '?';
          
$tab['Mode flash'] = (!isset($section['Flash']) || ($section['Flash'] == 0)) ? 'Pas de flash' $section['Flash'];
          
$tab['Longueur de focale pour un film 35 mm'] = isset($section['FocalLengthIn35mmFilm']) ? $section['FocalLengthIn35mmFilm'] : '?';
        } elseif (
$clef == 'IFD0') {
          
$tab['Résolution'] = isset($section['XResolution']) ? $section['XResolution'].' pixels/pouce' '?';
          
$tab['Mots clés'] = isset($section['Keywords']) ? str_replace';' ',' $section['Keywords'] ) : '?';
          
$temp = isset($section['UndefinedTag:0x4746']) ? $section['UndefinedTag:0x4746'] : 0;
          
$tab['Notation'] = '';
          for (
$i $i $i++) {
            if (
$i round($temp))
              
$tab['Notation'] .= '&#9733;'// étoile pleine
            
else $tab['Notation'] .= '&#9734;'// étoile creuse
          
}
          
$tab['Titre'] = isset($section['Title']) ? utf8_encode($section['Title']) : '?';
          
$tab['Auteur'] = isset($section['Author']) ? $section['Author'] : 'inconnu';
          
$tab['Commentaires'] = isset($section['Comments']) ? $section['Comments'] : '?';
          
$tab['Marque de l\'appareil photo'] = isset($section['Make']) ? $section['Make'] : '?';
          
$tab['Modèle d\'appareil photo'] = isset($section['Model']) ? $section['Model'] : '?';
          
$tab['Objet'] = isset($section['Subject']) ? $section['Subject'] : '?';
          
//$tab['Mode de contrôle'] = $section[''];
          //$tab['Date de création'] = $section[''];
          //$tab['Date de modification'] = $section[''];
        
}
      }
    }
  } else 
$tab[0] = "L'image n'existe pas ou bien son chemin est incorrect !";
  return 
$tab;
}
?>

 

Last update : Sunday, march, 24th 2013 Design by Minh-Dung DO