reg34000 Posté 14 Septembre 2005 Posté 14 Septembre 2005 Salut, j'ai un petit soucis avce un script, et je n'arrive pas a touver l'erreur $nb_rand = mt_rand(0, 10); //nombre aléatoire entre 0 et 10 $fichiers = array(); //FIXER $dir //Lister les fichiers du répertoire $dir if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if (filetype($dir . $file) === 'file') { $fichiers[] = $dir . $file; } } closedir($dh); } else { die("Impossible d'ouvrir le dossier"); } $fichiers = array_rand($fichiers, $nb_rand); //garder au hazard $nb_rand fichiers du tableau $fichier_cache = "truc.php"; $f = fopen($fichier_cache,"w"); if ($f) { //Lire et concaténer le contenu des fichiers retenus foreach($fichiers as $key=>$file) { fwrite($f, file_get_contents($file) ); } fclose($f); } else { die("Impossible d'ouvrir le fichier de cache"); } voici quelques messages d'erreur Warning: array_rand(): Second argument has to be between 1 and the number of elements in the array in /index.php on line 22 Warning: Invalid argument supplied for foreach() in /index.php on line 27 ou encore (apres rafraichissement) Warning: file_get_contents(2): failed to open stream: No such file or directory in /index.php on line 28 Warning: file_get_contents(6): failed to open stream: No such file or directory in /index.php on line 28 Warning: file_get_contents(8): failed to open stream: No such file or directory in /index.php on line 28 il me crée bien un fichier $fichier_cache = "truc.php"; mais il fait 0 octé
sgaiotti Posté 14 Septembre 2005 Posté 14 Septembre 2005 Bonjour, essaye de faire un print de $fichiers car je pense qu'il doit être vide Bon courage
reg34000 Posté 14 Septembre 2005 Auteur Posté 14 Septembre 2005 (modifié) oui il est vide, que faut il modifier dans le script qui bug ? Modifié 15 Septembre 2005 par reg34000
Anonymus Posté 15 Septembre 2005 Posté 15 Septembre 2005 Le problème se situe au niveau du 'array_rand', qui ne te renvoie pas le résultat auquel tu t'attends. Si $nb_rand =0, alors il te renvoie '0' valeurs du tableau $fichiers. Si $nb_rand=1 alors il te renvoie l'index correspondant du tableau. Si $nb_rand>1, alors il te renvoie un tableau de valeurs aléatoires. Bref, tu devrais jeter un oeil sur l'utilisation du 'array_rand', pour en savoir plus Anonymus.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant