Problemes avec mes inclusions aléatoire

Problemes avec mes inclusions aléatoire - PHP - Programmation

Marsh Posté le 31-08-2006 à 10:49:08    

Bonjour à tous
 
voici le code php  
 

Code :
  1. <?php
  2. $nb_aleatoire="4";
  3. $rep ="includes/";
  4. // on liste les fichiers du repertoire
  5. if ($handle = opendir($rep)) {
  6. $fichiers = array();
  7. while (false !== ($file = readdir($handle))) {
  8. if ($file != "." && $file != ".." ) {
  9. $fichiers[] = $rep . $file;
  10. }
  11. }
  12. closedir($handle);
  13. // On crée le tableau contenant les fichiers à inclure
  14. srand ((double) microtime() * 10000000);
  15. $include_aleatoire = array_rand ($fichiers, $nb_aleatoire);
  16. shuffle($include_aleatoire);
  17. for($i=0;$i<count($include_aleatoire);$i++){
  18. include($fichiers[$include_aleatoire[$i]]);
  19. }
  20. }
  21. ?>


 
 
 
Donc en gros ça consiste à inclure aléatoirement un fichier du dossier includes.
 
 
Seulement chez moi ça inclus tout les fichiers du dossier includes à la suite :s
 
du coup on a plus de contenu aléatoire dans mon " A l'affiche" mais une succesion d'image et descritpion ;s
 
 
Pas tres pratique pour attirer l'attention sur UN élément seulement ^^'
 
 
 
Help me plz !
 

Reply

Marsh Posté le 31-08-2006 à 10:49:08   

Reply

Marsh Posté le 31-08-2006 à 10:55:13    

tu fait ca :  

Code :
  1. for($i=0;$i<count($include_aleatoire);$i++){include($fichiers[$include_aleatoire[$i]]);}


 
c'est donc logique que ca inclu tout
 
tu devrais plutôt faire  

Code :
  1. include($fichier[rand(0,sizeof($fichier)-1))];


 
EDIT : j'ai lu ton code en travers, ma solution ne repond pas completement a ta question  
 
je corrige ca de suite :D


Message édité par flo850 le 31-08-2006 à 10:56:44
Reply

Marsh Posté le 31-08-2006 à 12:34:58    

J'ai une solution pour toi, il y a certainement mieux mais ça devrait être fonctionnel.
 
Lorsque tu récupères ta liste de fichier, tu mets une valeur random en tant que clé, ça classera donc ta liste aléatoirement.
 
Ensuite tu fais un foreach() et juste après l'include tu fais un break;.
 
Il faut peut-être taper un ksort(), mais je ne pense pas.
 
C'est un peu bidon comme méthode, mais ça fonctionnera.

Reply

Marsh Posté le 31-08-2006 à 15:11:20    

honte à moi....
 
-_-'
 
 

Code :
  1. for($i=0;$i<count($include_aleatoire);$i++){
  2. include($fichiers[$include_aleatoire[$i]]);
  3. }


 
 
suffisait de metre $i=3 dans mon cas (car j'ai 4 fichier différents dans mon dossier)
 
Voila c'est bon merci !
 
 
Par contre une tite question , est il normal que maintenant que ça marche bien niveau php , le serveyr free retourne si souvent une erreur 500 ? (c'est juste depuis que j'ai uploadé ce fichier)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed