8795 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai récupéré ces quelques lignes de code qui me permettent de charger aléatoirement des fichiers dans une page PHP. Problème, seule trois page sont prise en compte, les 2 autres ne sont jamais chargée et j'aimerai pouvoir rentrer une bonne dizaine de pageen tout Smiley decu Qui peut m'aider à trouver une solution ?

Merci.

$input = array("input05.php", "input.php", "input02.php", "input03.php", "input04.php");
$rand_keys = array_rand($input, 2);
$val = $input[$rand_keys[0]];
include($val);
Salut,

sais-tu ce que fait ton code actuellement?
Parce que là, tu récupères 2 indexes aléatoirement de ton $input, puis tu utilises que le premier des indexes retournés $rand_keys[0]. Donc tu n'inclus qu'un fichier php.

Du coup quel est le vrai problème? Ce n'est pas assez aléatoire ou bien ça n'inclut pas assez de fichier php?
Merci de ta réponse. En fait, les 2. Pas assez de fichiers (j'en voudrais une bonne dizaine) et en effet le random n'est pas terrible. Il m'arrive de charger plusieurs fois de suite la même page.

Comment puis-je faire ?

Merci par avance.
L'idée c'est de charger aléatoirement jusqu'à 10 fichiers différents. Idéalement, il faudrait qu'à chaque re-chargement de page, ce ne soit pas le même fichier qui s'affiche, mais là je pense que c'est trop compliqué.
Désolé c'est pas très clair, tu veux charger un 1 fichier aléatoire depuis une liste de 10 fichiers?
Tu peux tenter un shuffle du tableau (voir doc php), il semblerait que ce soit plus aléatoire.
Après si tu ne veux jamais retrouver un des fichiers qui a été chargé, tu peux sauver l'index via la session ou un cookie et du coup l'interdire pour ton shuffle. Dès que tu détectes que tu n'as plus d'index utilisable dans ton tableau (car dans la session ou le cookie), tu repars à 0 en acceptant tous les index pour ton shuffle etc ...
Les fichiers input, input01, etc. contiennent des infos à afficher dans l'encart d'une page d'acceuil en PHP.
Je souhaiterai simplement que le contenu de cet encart change à chaque nouvelle ouverture de page. Cela veut donc dire un chargement aléatoire de mes pages input.php Le script fait son bouleau mais pour seulement 3 fichiers. Sans faire compliqué, je cherche un script qui charge aléatoirement une dizaine de fichiers. Je ne sais comment m'y prendre.
Administrateur
Bonjour,

mt_rand() génère une meilleure valeur aléatoire (que rand()).
count() te permettrait de connaître le nombre de noms de fichiers dans ton tableau (disons N).
Avec ça tu peux générer un nombre aléatoire $hasard entre 0 et N-1

$tableau[$hasard] te donnera le $hasard-ième nom de fichier (on compte à partir de 0, comme d'hab')

EDIT : Sinon array_rand() http://php.net/manual/fr/function.array-rand.php
Le 1er commentaire rend son utilisation plutôt hasardeuse (ha)
Modifié par Felipe (18 Nov 2014 - 17:09)
Bonjour,

rand() fait amplement l'affaire, il suffit de l'appeler directement dans l'indice du tableau.
<?php
$fichier = array("page1.php","page2.php","page3.php");

// partir de 0, nous sommes dans un tableau
$rand = rand(0,2);

include($fichier[$rand]);
?>

Et emballé c'est pesé...