Lecture totale d'un dossier

Eléphant du PHP | 60 Messages

20 août 2006, 14:04

Hello !

Je désire créer un petit système de recherche de fichiers sur mon serveur web. Pour l'instant, je voulais simplement créer une fonction qui lit le total de mon dossier (contenu fichiers et ses sous-dossiers). Alors dans un grand élan de concentration j'ai obtenu ceci mais je coince sur un problème... ça fonctionne pas :(

Je vous montre déjà le code :
<?
function search($dossier)
{
     $rep = opendir($dossier);
     while ($file = readdir($rep))
     {
          if ($file != "." && $file != ".." && $file != "hidden")
          {
               if (is_dir($file))
               {
                    chdir($file);
                    $tmp = $dossier."\\".$file;
                    search($tmp);
               }
 	  			else
         		{
                    echo $file."<br>";
          		}
     	}
    }
	closedir($rep);
}
search("E:\Musiques");
?>
Voilà ce que j'obtiens dans le navigateur, c'est juste les dossiers qui sont dans E:\Musiques... Et pourtant je demande d'afficher les fichiers et non les dossiers! ça veut dire que mon PHP détecte mal ou je ne sais quoi... une idée ?

En faisant quelques tests, je remarque quand même que c'est la fonction is_dir() qui ne fonctionne pas :( pourquoi ?

merci d'avance :)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

20 août 2006, 16:27

Salut,
Essaie avec le chemin complet pour is_dir() :
$tmp = $dossier."\\".$file; 
if (is_dir($tmp))
{
    ...
}
is_dir() vérifie s'il s'agit d'un dossier mais il lui faut le chemin depuis la racine

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 60 Messages

20 août 2006, 16:30

Ouais j'y avais pensé, j'ai essayé mais ça change rien. :(

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

20 août 2006, 17:48

supprime cette fonction chdir() puis remontre le code avec les modifications.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute