Page 1 sur 1

Afficher 5 image sur son index en provenance d'un dossier ..

Posté : 08 août 2006, 10:49
par fabien14
Bonjour

J'ai recuperer un Script qui me convient mais je voudrai legerement le modifié et je ni arrive pas ....

Code : Tout sélectionner

$chocolat2 = $e['id']; $folder=opendir("images/$chocolat2/mini"); while ($file = readdir($folder)) $names[count($names)] = $file; closedir($folder); //sort file names in array sort($names); //remove any non-images from array $tempvar=0; for ($i=0;$names[$i];$i++){ $ext=strtolower(substr($names[$i],-4)); if ($ext==".jpg"||$ext==".gif"||$ext=="jpeg"||$ext==".png"){$names1[$tempvar]=$names[$i];$tempvar++;} } //random srand ((double) microtime() * 10000000); $rand_keys = array_rand ($names1, 2); //random image from array $slika=$names1[$rand_keys[0]]; //image dimensions $dimensions = GetImageSize($slika); if (isset($HTTP_GET_VARS["pic"])){header ("Location: $slika");} else {echo "<img src=\"images/$gpays2/mini/$slika\" $dimensions[3]>";}
Je voudrai que ce code m'affiche sur mon index 5 images de mon dossier images/$chocolat2/mini (chocolat2 est recuperer ceci marche trés bien....)

Mais il n'affiche qu'une photos du repertoire... et je voudrai que quand ya moins de 5 photos sa naffiche que les photos qu'il y a (qu'il y est pas un message d'erreur comme koi il a pas les 5 photos) et aussi je voudrai mettre une condition que si le dossier existe pas alors ne pas afficher les photos ....

Merci de votre aide

Posté : 08 août 2006, 11:15
par fabien14
Re coucou en faite j'ai trouver 1 autre code qui est bien mieux mais qui je narrive pas a faire certaine modif ...

Code : Tout sélectionner

<? $chocolat2 = $e['id']; $dir="images/$chocolat2/mini"; $dossier=opendir($dir); while($fichier=readdir($dossier)){ $berk=array('.', '..'); if(!in_array($fichier,$berk)){ $lien=$dir.'/'.$fichier; print '<div style="float:right;height:50px; ">'; if(file_exists($lien)){ print '<img src="'.$lien.'" width="50" height="30" alt="" /><p>&nbsp;</p>'; } print '</div>'; } } ?>
Je voudrai qu'il me limite a 5 le nombre d'affiche des images...

et aussi dans le dossier il y a des thumb et j'ai un index.html, comment lui dire de prendre et d'afficher que les format d'image (jpg, jpeg, png, gif) ?

Merci pour votre aide

Posté : 08 août 2006, 12:02
par Ryle
Pour limiter à 5 images l'affichage, il te suffit d'utiliser un compteur. Tu l'initialise à 0 puis, à chaque fois que tu affiches une image dans ta boucle, tu l'incrémente. S'il arrive à 5 dans ta boucle, il te suffit de sortir de la boucle en utilisant la commande break :
$compteur = 0;
while (...) {

  if ($compteur >= 5) // si le compteur atteind ou dépasse 5
    break; // interrompt la boucle

  ...

  echo '<img ... >';
  $compteur++; // incrémente le compteur

}
Pour savoir si un fichier est une image, tu peux vérifier son type MIME, ou bien simplement controler son extension comme cela est fait dans le premier code que tu donnes (même si c'est pas très joliment fait) :
$ext=strtolower(substr($names[$i],-4));  // récupère les 4 derniers caractères du nom du fichier
if ($ext==".jpg"||$ext==".gif"||$ext=="jpeg"||$ext==".png"){
 ... // si le fichier est une image, affichage et incrémentation du compteur
}

Posté : 08 août 2006, 12:40
par fabien14
Merci de t'es reponses

J'ai reussi a mettre le compteur mais je n'arrive pas a lui faire afficher que les images ....

Code : Tout sélectionner

<? $chocolat2 = $e['id']; $compteur = 0; $dir="images/$chocolat2/mini"; $dossier=opendir($dir); while($fichier=readdir($dossier)){ if ($compteur >= 5) break; $berk=array('.', '..'); if(!in_array($fichier,$berk)){ $lien=$dir.'/'.$fichier; print '<div style="float:right;height:50px; ">'; if(file_exists($lien)){ print '<a href="index.php?dest=gal&chocolat='.$chocolat2.'"><img src="'.$lien.'" width="70" height="50" title="Accéder à la galerie d\'images" alt="Accéder à la galerie d\'images" /></a>'; print '<p>&nbsp;</p>'; $compteur++; } print '</div>'; } } ?>
Merci pour votre aide.

Posté : 08 août 2006, 13:18
par fabien14
Toujours pas reussi ...

J'ai une petite croix de faite par mes 2 fichiers qui sont Thumbs.db et index.html ... je n'arrive pas a lui dire de pas prendre c'est fichier ....