J'ai besoin sur un de mes sites, d'afficher une image aléatoirement,
et voici la structure de la partie de stockage des images:
Code : Tout sélectionner
+photos/
+utilisateur1/
+maxi/
+mini/
+utilisateur2/
+maxi/
+mini/
+utilisateur3/
+maxi/
+mini/
etc
pour ce faire, j'ai fait cette fonction:
function random_image(){
//Répertoire de départ.
$rep_photos='./photos/';
$dir= dir($rep_photos);
// on récupères les différents utilisateurs (leur dossiers)
$dirs1=array();
while (false !== ($entry = $dir->read())) {
array_push($dirs1,$entry);
}
//on enlève le . et le ..
unset($dirs1[0]);
unset($dirs1[1]);
//on élimine d'éventuelles erreurs sur le tableau, et on le réindexe
$dirs1=array_filter($dirs1);
$dirs1=array_values($dirs1);
//on choisi au hasard un index qui donne un répertoire au hasard
$index=rand(0,count($dirs1)-1);
$rep_util=$dirs1[$index];
//on libère les ressources
$dir->close();
//on se place dans le répertoire choisi, puis dans le répertoire maxi de ce dernier
$dir2= dir($rep_photos.$rep_util.'/maxi/');
$dirs2=array();
//récupération des photos
while (false !== ($entry = $dir2->read())) {
array_push($dirs2,$entry);
}
// petite fontion qui élimine du tableau les fichiers autre qu'image, comme thumb par exemple
$dirs2=tri_photos_dir($dirs2);
// libération des ressources
$dir2->close();
//on retourne au hasard une des photos du dernier tableau, associé au chemin complet trouvé plus haut
return $rep_photos.$rep_util.'/maxi/'.$dirs2[''.rand(0,count($dirs2)-1).''];
}
ma question est, comment faire pour savoir si un répertoire et vide, et à ce moment la, l'enlever du tableau des répertoires utilisateur, (ou ne pas le mettre au départ)Ensuite, si vous avez des améliorations au niveau de la rapidité du code