Affiche plusieux Images aléatoire dans un dossier site web
jeremyguyot
Messages postés
58
Date d'inscription
Statut
Membre
Dernière intervention
-
jeremyguyot Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
jeremyguyot Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
Bonjour j'ai trouver un script sur internet qui me permette d'afficher une image aléatoire de mon répértoires upload ce pendans je veux qu'il en affiche une autre a coté comme ça sa en faira 2 le code que j'ai est celuis-ci :
Image aléatoire
voila si vous pouvez m'aider c'est pour mon site http://wamiz.free.fr/uploads.php merci
Image aléatoire
<?php ######################################## # # Affichage image aléatoire //manucci.info # ######################################## //On indique le dossier images $chem_img = "./images"; //On ouvre le dossier images $handle = opendir($chem_img); //On parcoure chaque élément du dossier while ($file = readdir($handle)) { //Si les fichiers sont des images if(preg_match ("!(\.jpg|\.jpeg|\.gif|\.bmp|\.png)$!i", $file)) { $listef[] = $file; } } $random_img = rand(0, count($listef)-1); //permet de prendre une image totalement au hasard (RANDom) parmi toutes les images trouvées. //On calcule la largeur et la hauteur de l'image aléatoire $size = getimagesize($chem_img."/".$listef[$random_img]); //Largeur maximale de l'image pour la création des miniatures $largeur_maxi = 180; //Si la largeur dépasse la limite autorisée... if ($size[0] > $largeur_maxi) { //...la nouvelle largeur est égale à la limite à ne pas dépasser $width = $largeur_maxi; //La largeur d'origine divisée par la largeur limitée (on obtient un chiffre qui sert à faire la même proportion pour la hauteur) $theight = ($size[0]/$largeur_maxi); //La hauteur originale est divisée par le chiffre obtenu précédemment afin que l'image conserve les mêmes proportions que l'originale (mais en mode vignette) $height = ($size[1]/$theight); } else { //Sinon on garde la taille originale $width = $size[0]; $height = $size[1]; } //On affiche l'image aléatoire (en respectant les standards ! :) ) echo "<a href=\"".$chem_img."/".$listef[$random_img]."\" onclick=\"window.open(this.href,'_blank');return false;\"><img style=\"border: none; width: ".$width."px; height: ".$height."px\" src=\"".$chem_img."/".$listef[$random_img]."\" alt=\"".$listef[$random_img]."\" /></a>"; //On ferme le dossier closedir($handle); ?>
voila si vous pouvez m'aider c'est pour mon site http://wamiz.free.fr/uploads.php merci
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Affiche plusieux Images aléatoire dans un dossier site web
- Site comme coco - Accueil - Réseaux sociaux
- Site de telechargement - Accueil - Outils
- Création site web - Guide
- Web office - Guide
- Dossier appdata - Guide
3 réponses
Bonjour,
Voilou (codé un peu à l'arrache..mais ça fonctionne ^^ )
J'ai découpé en fonctions histoire que ça soit plus facile à utiliser.
Les fonctions :
Et donc.. pour utiliser les fonctions, il suffit d'utiliser :
Cordialement,
Jordane
Voilou (codé un peu à l'arrache..mais ça fonctionne ^^ )
J'ai découpé en fonctions histoire que ça soit plus facile à utiliser.
Les fonctions :
<?php function createLink($chem_img,$listef,$random_img,$width,$height){ return "<a href='".$chem_img."/".$listef[$random_img]."' onclick='window.open(this.href,'_blank');return false;'> <img style='border: none; width: ".$width."px; height: ".$height."px' src='".$chem_img."/".$listef[$random_img]."' alt='".$listef[$random_img]."'></img> </a>"; } function getImgFromDir($chem_img="./images"){ //On ouvre le dossier images $handle = opendir($chem_img); //On parcoure chaque élément du dossier while ($file = readdir($handle)){ //Si les fichiers sont des images if(preg_match ("!(\.jpg|\.jpeg|\.gif|\.bmp|\.png)$!i", $file)){ $listeImg[] = $file; } } //On ferme le dossier closedir($handle); return $listeImg; } function getImgAlea($chem_img,$listef){ //permet de prendre une image totalement au hasard (RANDom) parmi toutes les images trouvées. $random_img = rand(0, count($listef)-1); //On calcule la largeur et la hauteur de l'image aléatoire if(file_exists($chem_img."/".$listef[$random_img])){ $size = getimagesize($chem_img."/".$listef[$random_img]); }else{ echo "Fichier introuvable : ".$chem_img."/".$listef[$random_img]; return -1; } //Largeur maximale de l'image pour la création des miniatures $largeur_maxi = 180; //Si la largeur dépasse la limite autorisée... if ($size[0] > $largeur_maxi){ //...la nouvelle largeur est égale à la limite à ne pas dépasser $width = $largeur_maxi; //La largeur d'origine divisée par la largeur limitée (on obtient un chiffre qui sert à faire la même proportion pour la hauteur) $theight = ($size[0]/$largeur_maxi); //La hauteur originale est divisée par le chiffre obtenu précédemment afin que l'image conserve les mêmes proportions que l'originale (mais en mode vignette) $height = ($size[1]/$theight); } else { //Sinon on garde la taille originale $width = $size[0]; $height = $size[1]; } $result = array(); $result['random_img'] = $random_img; $result['size'] = $size; $result['width'] = $width; $result['height'] = $height; return $result; } ?>
Et donc.. pour utiliser les fonctions, il suffit d'utiliser :
//On récupère la liste des fichiers images du répertoire $listef = getImgFromDir("./images"); $img1 = getImgAlea("./images",$listef); $img2 = getImgAlea("./images",$listef); while ($img1['random_img'] == $img2['random_img']){//pour éviter que la même image apparaisse deux fois... $img2 = getImgAlea("./images",$listef); } //On affiche l'image aléatoire (en respectant les standards ! :) ) if($img1){ echo createLink("./images",$listef,$img1['random_img'],$img1['width'],$img1['height']); } if($img2){ echo createLink("./images",$listef,$img2['random_img'],$img2['width'],$img2['height']); }
Cordialement,
Jordane
Salut le code que tu mla donné ne fonctionne pas enfaite je veux que a coté de l'image aléatoire il y a une déxiéme qui s'affiche si je mais deux fois le script l'image s'affiche en dessous
J'ai réussi a les placer grace au css mais je veut que la taille style: "width="200" height="100"
comment le placer ici //On affiche l'image aléatoire (en respectant les standards ! :) )
echo "<a href=\"".$chem_img."/".$listef[$random_img]."\" onclick=\"window.open(this.href,'_blank');return false;\"><img style=\"border: none; width: ".$width."px; height: ".$height."px\" src=\"".$chem_img."/".$listef[$random_img]."\" alt=\"".$listef[$random_img]."\" /></a>";
merci
comment le placer ici //On affiche l'image aléatoire (en respectant les standards ! :) )
echo "<a href=\"".$chem_img."/".$listef[$random_img]."\" onclick=\"window.open(this.href,'_blank');return false;\"><img style=\"border: none; width: ".$width."px; height: ".$height."px\" src=\"".$chem_img."/".$listef[$random_img]."\" alt=\"".$listef[$random_img]."\" /></a>";
merci