Comme j'avais envie de me changer les idées de mon travail je me suis penché sur ton problème et voici la solution, je me suis permis de rajouter dans les dossier exclus ceux nommées miniatures vu ce que tu comptes en faire et le code est ultra-commenté pour que tu puisse comprendre ce que j'ai fait
<?
function parcours($chemin)
{
//on Crée un tableau vide
$listef=array();
//On ouvre le répertoire
$handle = opendir($chemin);
//On parcoure chaque élément du dossier
while ($file = readdir($handle))
{
//on élimine les dossiers indésirables
if(($file != '.') && ($file != '..') && ($file != 'miniatures'))
{
//Si les fichiers sont des images
if(preg_match ("!(\.jpg|\.jpeg|\.gif|\.bmp|\.png)$!i", $file))
{
//on les ajoute à la liste
$listef[] = $chemin."/".$file;
}
//si c'est un dossier
if(is_dir($chemin."/".$file))
{
//on appelle la fonction sur ce dossier et ajoute le résultat à la liste existante
$listef=array_merge($listef,parcours($chemin."/".$file));
}
}
}
//on fermer le répertoire
closedir($handle);
//on renvoie la liste de fichier obtenue
return($listef);
}
function imagerandom($chemin,$taillemax)
{
//puis on récupère les chemins de toutes les images
$listef=parcours($chemin);
//permet de prendre une image totalement au hasard (RANDom) parmi toutes les images trouvées.
$random_img = rand(0, count($listef));
//On calcule la largeur et la hauteur de l'image aléatoire
$size = getimagesize($listef[$random_img]);
//Largeur maximale de l'image pour la création des miniatures
$largeur_maxi = $taillemax;
//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=\"".$listef[$random_img]."\" target=\ "_blank\"><img style=\"border: none; width: ".$width."px; height: ".$height."px\" src=\"".$listef[$random_img]."\" alt=\"".$listef[$random_img]."\" title=\"".$listef[$random_img]."\" /></a>";
}
imagerandom("Photos",500);
?>