Affiche plusieux Images aléatoire dans un dossier site web
jeremyguyot
Messages postés
77
Statut
Membre
-
jeremyguyot Messages postés 77 Statut Membre -
jeremyguyot Messages postés 77 Statut Membre -
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
- Creer un site web - Guide
- Site de telechargement - Accueil - Outils
- Web office - Guide
- Dossier appdata - Guide
- Site x - 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