Page 1 sur 1

identification de la racine

Posté : 22 sept. 2008, 16:48
par PtitGénie
Bonjour à tous !

Je veux lister tous les fichiers et dossiers de mon serveur.
J'ai donc placé un fichier "lister.php" à la racine, avec ce code :
<? 
function ScanDir2($Directory){ 
echo "Dir : ".$Directory; 
  
if (is_dir($Directory) && is_readable($Directory)) { 
  
    closedir($MyDirectory); 
  
    if($MyDirectory = opendir($Directory))  { 
  
    while (false !== ($entry = readdir($MyDirectory))) { 
        if (is_dir($Directory."/".$Entry)) { 
            if (($Entry != ".") && ($Entry != "..")) { 
        echo "<li><b>Repertoire</b>: $Directory/$Entry</li>\n"; 
        echo "<ul>"; 
        ScanDir($Directory."/".$Entry); 
        echo "</ul>"; 
  
            } 
        } 
        else { 
        echo "<li><b>Fichier</b>: $Directory/$Entry </li>\n"; 
  
            if (eregi("(\.html)|(\.htm)",$Entry)){ 
        $MetaTags = get_meta_tags($Directory."/".$Entry); 
  
                } 
            } 
        } 
    closedir($MyDirectory); 
} 
  
}else{echo "erreur";} 
  
} 
  
ScanDir2("./"); 
  
?> 
Seulement il ne reconnaît pas le "./", ni même le "." tout court pour dire "à la racine".
Il ne passe pas la première condition et affiche donc l'écho "erreur".

Mais lorsque je met un nom de dossier existant à cette racine, genre ScanDir2("truc/"), cela va parfaitement fonctionner et lister tous les fichiers de ce dossier en particulier o_O

Merci d'avance, si quelqu'un a une idée...

Posté : 22 sept. 2008, 22:34
par Cyrano
Si ce fichier est à la racine, essaye comme ceci :
//...
ScanDir2(realpath(dirname(".")));
?>
dirname() va récupérer le répertoire qui le contient, et realpath() le chemin absolu de tout ça sur la machine.