Listage (avancé) de fichiers d'un dossier

WRInaute discret
Bonjour à tous !

Voilà l'objectif : J'ai un album de fonds d'écran qui répertorie les fonds de la façon suivante :

Code:
http://www.monsite.com/fonds/rubrique1/nom.jpg

La miniature correspondante est :

Code:
http://www.monsite.com/fonds/rubrique1/thumbs/nom_m.jpg


Ce que j'aimerais c'est tirer au hasard une miniature (qui sont de format 166*125 pixels) et l'afficher.

Pour cela il faudrait lister toutes les URLs des miniatures et faire un tirage au sort (je pense même que le mieux est de générer une fois pour toute la liste des miniatures ça surchargerait beaucoup trop de le faire à chaque fois que la page est chargée).

Pour la 2e partie je sais faire.

Mais je n'arrive pas à générer la liste des miniatures uniquement (leur URL complète) :(
(le faire manuellement serait beaucoup trop long)

Si quelqu'un pouvait au moins me mettre sur la voie...

Merci beaucoup d'avance ! (ça me rendrait énormément service :wink: )
 
WRInaute impliqué
Code:
<?php
$miniatures = glob('./fonds/rubrique1/thumbs/*.jpg'); // toutes les images en .jpg, tu peux enlever le .jpg si tu as aussi des .gif ou autres
?>
et après :

Code:
<?php
echo $miniatures[mt_rand(0, count($miniatures)-1)];
?>
Tu auras alors le chemin jusqu'à ton image.

Essaies :

Code:
<?php
echo '<pre>';
print_r($miniatures);
echo '</pre>';

Pour voir le chemin de toutes tes miniatures ;)
 
WRInaute discret
La page est chargée entre 0.0504 et 0.1 seconde. Est-ce que ça représente beaucoup pour le serveur ? Est-ce que je laisse faire la liste à chaque fois ou je le met à jour à chaque nouveau fond ?
 
WRInaute discret
Pour l'améliorer le mieux serait que l'image est un lien vers la page du fond :roll:

La page du fond présente cette URL :
Code:
http://www.jamesbond-fr.com/fonds/window.php?img_name=Dossier/image.jpg

En soit ça ne pose pas de problème particulier puisque qu'il suffirait de mettre la variable $miniatures tiré au sort après img_name=.

Mais le problème c'est qu'il faudrait que la variable soit la même entre le moment où l'on génère le lien et où l'on génère la miniature correspondante.
Sinon ça calcule 2 adresses au hasard et la miniature ne renverrais (presque) jamais à la page du fond correspondant.

Donc comment est-ce qu'on peut garder la même variable en ne la tirant au sort qu'une seule fois ?
 
WRInaute impliqué
Code:
<?php
$url_image = $miniatures[mt_rand(0, count($miniatures)-1)];
?>
Tu as donc l'url de l'image dans $url_image, a toi de faire ce dont tu as envie avec ;)
 
WRInaute discret
T'es sûr que ça va pas retirer au sort à chaque fois que j'appelle la variable ?? (j'ai pas encore testé mais j'avais eu ça avec un bout de code il y a quelques semaines qui m'a bien pris la tête à cause de ça)
 
Discussions similaires
Haut