Mammouth du PHP |
19672 Messages
04 juin 2006, 08:54
Alors proposition : ton système implique que tu as exactement autant d'images qu'il y a de secondes dans une minute, ce qui pose problème si tes images commencent à img01.jpg, il manquerait l'image img00.jpg et donc il te faut 59 images. Si l'appel est sélectionné à la seconde 0, tu n'auras rien d'autre qu'une erreur pour cause de fichier non trouvé.
À la place, je suggère un autre système utilisant la fonction rand() qui va définir un nombre aléatoire, ici pour l'exemple basé sur 50 images de img01.jpg à img50.jpg, ce qui va donner :
<?php
/* On choisit un nombre aléatoire de 1 à "nb_img" (par exemple 50) */
$num = rand(1, 50);
/* Si le nombre est inférieur à 10, on le complète en mettant un zéro initial pour avoir 02 et non 2 */
$num = ($num < 10) ? "0". $num : $num;
/* On construit la chaine */
$image = "img". $num .".jpg";
?>
<body background="<?php echo($image); ?>">
Tu pourrais avoir un code encore plus intéressant en établissant dynamiquement le second paramètre de rand() en comptant au préalable le nombre de fichiers images. Sinon, tel quel, le code t'obligera à modifier les paramètres si tu modifies le nombre d'images stockées.
Il faudrait donc commencer par stocker tes images dans un répertoire spécifique dans lequel tu ne mettras rien d'autre. Ensuite, explore une fonction comme read_dir() pour compter les images. Pour être encore plus générique et ne pas limiter quant au noms des images, stockes les noms de fichiers dans un tableau indexé et établis le rand() sur le nombre de lignes stockées dans ce tableau.
Je ne te mets pas davantage de code, explore un peu et fais des essais : si tu bloques sur la compréhension d'un détail, reviens poser une question

Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse 