Souci avec la fonction iptcparse()

Messages postés
28
Date d'inscription
dimanche 27 janvier 2008
Statut
Membre
Dernière intervention
1 décembre 2021
-
Messages postés
28
Date d'inscription
dimanche 27 janvier 2008
Statut
Membre
Dernière intervention
1 décembre 2021
-
Bonjour,

J'utilise les champs IPTC pour associer manuellement diverses informations à des images avec Xnview.
Ensuite, pour les afficher sur les pages de mon site, j'utilise la fonction iptcparse() comme ceci :

$temp=getimagesize($chemin_image,$infojpg);
$titre="Sans titre"; $objet="?"; // initialisation par défaut
if (isset($infojpg ["APP13"])) {
 $iptc = iptcparse($infojpg["APP13"]);
 $objet = $iptc["2#005"][0];
 $titre = $iptc["2#105"][0];
 } 

Jusque là, tout va bien... les variables $objet et $titre contiennent bien les textes attendus.

Mais si je vais chercher d'autres champs (par exemple 2#115 ou 2#120), il apparaît l'erreur suivante à chaque appel de
$resume = $iptc["2#120"][0]  :
"Notice: Undefined index: 2#120 in C:\wamp64\www\galerie.php on line 95"

et pourtant, $resume contient le texte attendu qui s'affiche bien là où je l'attends.

Comment expliquer ces messages d'erreur et faire en sorte qu'ils ne s'affichent pas sur la page de mon site ?

Je ne suis pas très calé en PHP et j'ai sûrement dû oublier un truc en route.

Merci de votre aide.

1 réponse

Messages postés
28
Date d'inscription
dimanche 27 janvier 2008
Statut
Membre
Dernière intervention
1 décembre 2021

Petit complément :

En fait, l'erreur ne se produit que si le champ IPTC n'est pas renseigné (c'est le cas de nombreuses images sur ma version de test !).
J'en conclus que mon initialisation avant mon appel à isset() est inutile, mais que je dois gérer ensuite le fait que le champ lu peut être vide... Comment faire sans lire le champ ?
Insoluble ?