Problème avec la fonction Exif

Problème avec la fonction Exif - PHP - Programmation

Marsh Posté le 29-10-2007 à 20:47:54    

Bojour à tous
 
Voila, mon problème est très simple.
J'ai suivi à la lettre le tutorial suivant : http://www.siteduzero.com/tuto-3-1 [...] image.html
 
Voici le résultat:

Code :
  1. <?php
  2. if(in_array(strtolower(end(explode('.', $img))), array('jpg', 'jpeg', 'tif', 'tiff'))) // Si fichier Jpeg ou Tiff
  3. {
  4.   // Je lis les infos Exif
  5. }
  6. /* if($exif = exif_read_data($img, Exif, true)) // Si le fichier $img contient des infos Exif
  7. {
  8.   // Alors je lis ces informations
  9. } */
  10. foreach ($exif as $key => $section) // On parcourt la première partie du tableau multidimensionnel
  11. {     
  12.     foreach ($section as $name => $value) // On parcourt la seconde partie
  13.     {
  14.         $exif_tab[$name] .= $value; // Récupération des valeurs dans le tableau $exif_tab
  15.     }
  16. }
  17. $type = "photo_couleur";
  18. if($type=="photo_n&b" || $type=="photo_couleur" ) {
  19.   if($exif_tab['FocalLength']) // Si les données de la distance focale existent
  20.   {
  21.     $focale = round($exif_tab['FocalLength'], 0); // j'arrondis la valeur
  22.     $focale = $focale." mm"; // Je rajoute l'unité millimètre
  23.   }
  24.   if($exif_tab['Make']) // Marque de l'appareil
  25.     $marque = $exif_tab['Make'];
  26.   if($exif_tab['Model'])// Modèle de l'appareil
  27.     $modele = $exif_tab['Model'];
  28.   if($exif_tab['ExposureTime'])// Vitesse d'obturation
  29.     $vit_opt = $exif_tab['ExposureTime'];
  30.   if($exif_tab['ISOSpeedRatings']) // Valeur iso
  31.     $iso = $exif_tab['ISOSpeedRatings'];
  32.   if($exif_tab['DateTimeOriginal'])
  33.     $date = $exif_tab['DateTimeOriginal']; // Date de la prise de vue (heure de l'appareil)
  34.   // La date est d'un format spécial, on va donc la rendre lisible
  35.   $date2 = explode(":", current(explode(" ", $date)));
  36.   $heure = explode(":", end(explode(" ", $date))); // Utile dans le cas où vous souhaitez extraire l'heure
  37.   $annee = current($date2); // Je lis la valeur courante de date2
  38.   $mois = next($date2); // Puis la suivante (c'est un tableau)
  39.   $jour = next($date2); // Puis la suivante
  40.   // Pour obtenir l'heure, faire de même avec $heure
  41. }
  42. elseif($type=="image_perso" )
  43. {
  44.   if($exif_tab['Software']) // Si l'information sur le logiciel existe
  45.     $logiciel = $exif_tab['Software'];
  46. }
  47. if (($exif_tab['Width'] && $exif_tab['Height']))
  48. $resolution = $exif_tab['Width'].'*'.$exif_tab['Height'];
  49. echo "<span style='font-weight: bold;'>Appareil :</span><br />
  50. Marque : $marque<br />
  51. Modèle : $modele<br />
  52. <span style='font-weight: bold;'>Caractéristiques :</span><br />
  53. Focale : $focal<br />
  54. Vitesse d'opturation : $vit_opt<br />
  55. Iso : $iso<br />
  56. Prise le : $jour/$mois/$annee<br />
  57. A : $heure:$minute:$seconde<br />";
  58. ?>


Mais une fois sur mon site, voici les problèmes:

Code :
  1. Warning: Invalid argument supplied for foreach() in f:\erwin\site_seran\projet_preprofessionnalisant_php\informations_image.inc_1.php on line 19
  2. Notice: Undefined variable: exif_tab in f:\erwin\site_seran\projet_preprofessionnalisant_php\informations_image.inc_1.php on line 30
  3. Notice: Undefined variable: exif_tab in f:\erwin\site_seran\projet_preprofessionnalisant_php\informations_image.inc_1.php on line 35
  4. Notice: Undefined variable: exif_tab in f:\erwin\site_seran\projet_preprofessionnalisant_php\informations_image.inc_1.php on line 37
  5. Notice: Undefined variable: exif_tab in f:\erwin\site_seran\projet_preprofessionnalisant_php\informations_image.inc_1.php on line 39
  6. Notice: Undefined variable: exif_tab in f:\erwin\site_seran\projet_preprofessionnalisant_php\informations_image.inc_1.php on line 41
  7. Notice: Undefined variable: exif_tab in f:\erwin\site_seran\projet_preprofessionnalisant_php\informations_image.inc_1.php on line 43
  8. Notice: Undefined variable: date in f:\erwin\site_seran\projet_preprofessionnalisant_php\informations_image.inc_1.php on line 47
  9. Notice: Undefined variable: date in f:\erwin\site_seran\projet_preprofessionnalisant_php\informations_image.inc_1.php on line 48
  10. Notice: Undefined variable: exif_tab in f:\erwin\site_seran\projet_preprofessionnalisant_php\informations_image.inc_1.php on line 63
  11. Notice: Undefined variable: marque in f:\erwin\site_seran\projet_preprofessionnalisant_php\informations_image.inc_1.php on line 68
  12. Notice: Undefined variable: modele in f:\erwin\site_seran\projet_preprofessionnalisant_php\informations_image.inc_1.php on line 69
  13. Notice: Undefined variable: focal in f:\erwin\site_seran\projet_preprofessionnalisant_php\informations_image.inc_1.php on line 72
  14. Notice: Undefined variable: vit_opt in f:\erwin\site_seran\projet_preprofessionnalisant_php\informations_image.inc_1.php on line 73
  15. Notice: Undefined variable: iso in f:\erwin\site_seran\projet_preprofessionnalisant_php\informations_image.inc_1.php on line 74
  16. Notice: Undefined variable: minute in f:\erwin\site_seran\projet_preprofessionnalisant_php\informations_image.inc_1.php on line 76
  17. Notice: Undefined variable: seconde in f:\erwin\site_seran\projet_preprofessionnalisant_php\informations_image.inc_1.php on line 76
  18. Appareil :
  19. Marque :
  20. Modèle :
  21. Caractéristiques :
  22. Focale :
  23. Vitesse d'opturation :
  24. Iso :
  25. Prise le : //
  26. A : Array::


 
J'ai beau avoir cherché et encore cherché, je ne vois toujours pas d'où peuvent venir ces problèmes.
 
J'attends une réponse de votre part car je ne vois vraiment pas comment corriger ces problèmes. Tous me semblait correctement déclaré.

Reply

Marsh Posté le 29-10-2007 à 20:47:54   

Reply

Marsh Posté le 29-10-2007 à 22:36:08    

J'ai pas lu tout le code, mais "tous me semblait correctement déclaré" me semble un peu rapide :
 
- $exif est déclaré dans une portion de code mise en commentaire
- $exif_tab est déclaré dans une boucle dans laquelle le script n'entre pas (voir 1ere erreur)
- tout le reste est déclaré en se basant sur $exif_tab qui n'est donc pas déclaré (2ème erreur).
 
Conclusion : vire les commentaires :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed