Lecture de dossier

Répondre
Keika
le 08/09/2007 à 14:09
Keika
Salut,

j'ai un soucis de lecture de dossier sur Free.

en fait ca marche correctement en local, aucun soucis tout s'affiche comme je le veux, et une fois en ligne j'ai un warning:

Warning: sort() expects parameter 1 to be array, null given in /mnt/123/sdb/c/f/xxx/admin/galeries.php on line 70

le code:

ici
Le PHP --> C'est dur !
LupusMic
le 08/09/2007 à 15:17
LupusMic
Que donne un var_dump de la variable soumise au sort ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
i M@N
le 08/09/2007 à 15:42
i M@N
Hello.

Faut mettre la liste des fichiers dans un tableau :
<?php
$dir = ".";
/*on ouvre le répertoire $dir*/
$dossier = opendir($dir);
/*on lit le contenu*/
while ($fichier = readdir ($dossier)) {
/*si le fichier n'est pas . ou .. on le pas dans la liste $tableau*/
if ($fichier != "." && $fichier != "..") {
/*on met la liste des fichiers retenus dans un tableau*/
$tableau[] = $fichier;
}
/*on ferme le dossier*/
closedir($dossier);
/*on trie les fichiers retenus par ordre alphabétique*/
sort($tableau);
?>


@+...
One Love, One Heart, One Unity.
Keika
le 11/09/2007 à 09:43
Keika
Je mets tout dans un tableau.

J'ai mis des echo un peu partout et je me rend compte que sur ces lignes, la lecture du dossier n'affiche que les dossiers "." ".." et "mini" mais ne lit pas les fichiers qui sont aussi dans ce meme dossier. Bizarre ?!

<?php

//On recoit le nom du dossier
$dossier = './couvertures/'.$_GET['voir'] ;

//On ouvre le dossier
$odir = opendir($dossier) ;

//On declare les tableaux
$lien_final = array() ;
$lien_mini_final = array() ;
$nom_img = array() ;

//Tant que l'on trouve des fichiers
while($rdir = readdir($odir)){
echo $rdir.'<br />' ;

?>


Et encore une fois, avec ce code en local, tout fonctionne correctement et la lecture du dossier trouve tout. Je ne comprends plus...

PHP Version 4.4.3-dev << sur Free
PHP Version 5.2.3 << en local, c'est peut etre de la que vient le soucis...
Le PHP --> C'est dur !
zebden
le 11/09/2007 à 12:52
zebden
Ton tableau est null, rien à voir avec la version, tu dois avoir un soucis de chemin ou autre chose qui t'empêche de remplir tes tableaux.
zebdinou pour les intimes / Blog : http://www.zebden.fr
Keika
le 11/09/2007 à 12:54
Keika
le tableau est null car je n'ai rien qui peut se mettre dedans. C'est vraiment bizarre.

Regarde le echo $rdir ; ca doit m'afficher tous ce que l'on peut trouver dans le dossier ? Et bien la il ne m'affiche que les dossiers et pas les fichiers... je ne comprends vraiment pas. Pourtant les fichiers sont dedans
Le PHP --> C'est dur !
zebden
le 11/09/2007 à 13:06
zebden
Ca doit être une erreur toute bête (mais souvent les plus galères à trouver). Vérifie tout bien et vois ce qui cloche. Et surtout test si le tableau est null pour éviter de le trier dans le vide et provoquer l'erreur.
zebdinou pour les intimes / Blog : http://www.zebden.fr
Keika
le 11/09/2007 à 13:24
Keika
Hmm effectivement c'etait un peu bete.

Alors voila, je voulais m'economiser du temps et peut etre de la ressource serveur, et donc j'avais mis un while pour lire le dossier general puis dans ce meme while j'avais mis un second while qui lui lisait les fichiers dans le dossier mini. Erreur !
J'ai donc sortit le second while du premier, et maintenant ca passe correctement.

Le wall pour ceux que ca interesse,

Merci
Le PHP --> C'est dur !
djullius
le 11/11/2008 à 00:39
djullius
correction du script plus il manque la fermeture du while et il faut imperativement la rajoute avant sort et close!
<?php
$dir = ".";
/*on ouvre le répertoire $dir*/
$dossier = opendir($dir);
/*on lit le contenu*/
while ($fichier = readdir ($dossier)) {
/*si le fichier n'est pas . ou .. on le pas dans la liste $tableau*/
if ($fichier != "." && $fichier != "..") {
/*on met la liste des fichiers retenus dans un tableau*/
$tableau[] = $fichier;
}
/*on ferme le dossier*/
closedir($dossier);
/*on trie les fichiers retenus par ordre alphabétique*/
sort($tableau);
?>
Répondre
LoadingChargement en cours