switch qui délire
Posté : 06 mai 2014, 15:27
Bonjour,
Je suis tombé sur un tour de magie que me fait PHP.
Je vous explique, c'est simple : j'ai "créé" une carte qui affiche toutes les caches que j'ai trouvé. (geocaching.com pour ceux qui connaissent) , bref.
Voici ce que ça rend : http://blog.corneliux.fr/php/geocaching ... neliux.php
Je traite une variable avec un switch qui va afficher une image en fonction de son nom.
Tout se passe bien, sauf pour une image (enfin, pour 2 , mais c'est le même problème).
Pour la cache "Sacré cailloux" qui est un icone "tick" vert (sous le ? bleu ), ça devrait être l'icone d'une Earthcache !!!
Voici le code qui pose problème :
Le problème ne survient que pour la Eartcache qui affiche l'image "defaut.png" au lieu d'afficher l'image "Earthcache.png".
Comme vous pouvez le voir, j'ai fait un echo de ce qui se passe dans le swicth, et il voit bien la Earthcache puisque sur 2 lignes différentes, j'ai : tab_icone : Earthcache , tandis que pour les multi, j'ai bien tab_icone : Multi-cache.
Tout le reste de mon script fonctionne, mais ça, je ne comprend vraiment pas... Quelqu'un peut me donner une piste, svp...
Merci d'avance.
Je suis tombé sur un tour de magie que me fait PHP.
Je vous explique, c'est simple : j'ai "créé" une carte qui affiche toutes les caches que j'ai trouvé. (geocaching.com pour ceux qui connaissent) , bref.
Voici ce que ça rend : http://blog.corneliux.fr/php/geocaching ... neliux.php
Je traite une variable avec un switch qui va afficher une image en fonction de son nom.
Tout se passe bien, sauf pour une image (enfin, pour 2 , mais c'est le même problème).
Pour la cache "Sacré cailloux" qui est un icone "tick" vert (sous le ? bleu ), ça devrait être l'icone d'une Earthcache !!!
Voici le code qui pose problème :
Code : Tout sélectionner
// On cherche si c'est la ligne du type de cache pour le logo
if (preg_match("#<type>#i", "'.$buffer.'")){
//echo $buffer;
//unset($tab_ico);
//unset($tab_icone);
$tab_ico = explode('|',$buffer);
$tab_icone = explode(' ',$tab_ico[1]);
// echo "Longitude : ".$tab_coord[1]." Lattitude : ".$tab_coord[3]."<br>";
$tablo_icone[$l] = "images/";
echo "tab_icone : ".$tab_icone[0]."<br>";
switch ($tab_icone[0]){
case Traditional:
$tablo_icone[$l] .= "Traditional.png";
// $test[$l] = "Traditional.png";
break;
case Cache:
$tablo_icone[$l] .= "Cito.png";
break;
case Letterbox:
$tablo_icone[$l] .= "Letterbox.png";
break;
case Virtual:
$tablo_icone[$l] .= "Virtual.png";
break;
case Unknown:
$tablo_icone[$l] .= "Unknown.png";
break;
case Virtual:
$tablo_icone[$l] .= "Virtual.png";
break;
case Wherigo:
$tablo_icone[$l] .= "Wherigo.png";
break;
case Webcam:
$tablo_icone[$l] .= "Webcam.png";
break;
case Event:
$tablo_icone[$l] .= "Event.png";
break;
case Earthcache:
$tablo_icone[$l] .= "Earthcache.png";
break;
case Multi-cache:
$tablo_icone[$l] .= "Multi-cache.png";
break;
case Mega-Event:
$tablo_icone[$l] .= "Mega-Event.png";
break;
default :
$tablo_icone[$l] .= "found.png";
}Comme vous pouvez le voir, j'ai fait un echo de ce qui se passe dans le swicth, et il voit bien la Earthcache puisque sur 2 lignes différentes, j'ai : tab_icone : Earthcache , tandis que pour les multi, j'ai bien tab_icone : Multi-cache.
Tout le reste de mon script fonctionne, mais ça, je ne comprend vraiment pas... Quelqu'un peut me donner une piste, svp...
Merci d'avance.