Page 1 sur 1

definir une variable avec plusieurs choix d'images

Posté : 02 sept. 2010, 18:06
par Yadutonus
Bonjour, je suis tres debutant en php. Et je me casse la tête pour definir une variable un peu complexe pour moi.
Voici la definition d'une variable que j'utilise pour appeler une image


$image="../images_catalogue/img".$reference.".jpg";
if (file_exists($image))
{
$imageOK=$image;
$size = @GetImageSize($imageOK);
$lar = $size[0]+35;
$hau = $size[1]+60;
$affImage="<img src='$imageOK' width='140'>";
}
else
{
$imageOK="";
$lar="";
$hau="";
$affImage="";
}


mais aujourd'hui mon logiciel de base de données a changé et les images générées s'appellent maintenant (chemin compris) :

"../images_catalogue/".$reference."_1.jpg"

j'aimerais faire coéxister dans la definition de la variable les deux formes. En gros si il ne trouve pas de fichier

"../images_catalogue/img".$reference.".jpg"

qu'il cherche


"../images_catalogue/".$reference."_1.jpg"
sinon comme d'hab il affiche rien

merci de votre aide !

Re: definir une variable avec plusieurs choix d'images

Posté : 02 sept. 2010, 18:15
par ilbee
Salut,

tu peux essayer un truc dans le genre ...
$image = "../images_catalogue/img".$reference.".jpg";
$imageNew = "../images_catalogue/img".$reference."_1.jpg";

$find = false;
$imageOK="";
$lar="";
$hau="";
$affImage="";

if( file_exists($image) ) {
     $imageOK = $image;
     $find = true;
} elseif( file_exists($imageNew) ) {
     $imageOK = $imageNew;
     $find = true;
}

if( $find )  {
     $size = @GetImageSize($imageOK);
     $lar = $size[0]+35;
     $hau = $size[1]+60;
     $affImage="<img src='$imageOK' width='140'>";
}

Re: definir une variable avec plusieurs choix d'images

Posté : 02 sept. 2010, 18:32
par yadutonus
merci ça marche tres bien !

Re: definir une variable avec plusieurs choix d'images

Posté : 02 sept. 2010, 20:39
par AB
Pour la gloire, une variante en utilisant la fonction glob (peut être légèrement plus performante puisque n'utilise pas file_exists()) :
 
$reference_1 = $reference.'_1';
$chemin = '../images_catalogue/img';
$extension = '.jpg';
$affImage = null;
$lar = null;
$hau = null;

$masque = $chemin.'{'.$reference.','.$reference_1.'}'.$extension;
					 
$tab_image = glob($masque,GLOB_BRACE);
	 
if (is_array($tab_image) && count($tab_image) > 0) 

{
	natsort($tab_image);
	$fichier = array_pop($tab_image); // prend le dernier élément du tableau

	 if ($size = @getimagesize($fichier))
	 {
		 $lar = $size[0]+35;
		 $hau = $size[1]+60;
		 $affImage = '<img src = "'.$fichier.'" width = "'.$size[0].'" height = "'.$size[1].'" />';	
	 }
}

//affichage
if (isset($affImage)) echo $affImage;