<?php

//chdir("Utilisateurs");
//$dirs = array_filter(glob('*'), 'is_dir');
//echo "<pre>";
//print_r( $dirs);



  /*  function getAllSubdirectories($base) {
    	$dir_array = array();
    	if (!is_dir($base)) {
			echo "plouf";
    		return $dir_array;
    	}
     
    	if ($dh = opendir($base)) {
    		while (($file=readdir($dh)) !== false) {
    			if ($file == '.' || $file == '..') continue;
     
    			if (is_dir($base.'/'.$file)) {
    				$dir_array[] = $file;
    			} else {
    				array_merge($dir_array, rendertask::getAllSubdirectories($base.'/'.$file));
    			}
    		}
    		closedir($dh);
    		return $dir_array;
    	}
    }

	getAllSubdirectories("Utilisateurs");*/
	
	$dir = "Utilisateurs";
	
	$scan = scandir($dir);
	$tab_repertoire = array();
	
	foreach($scan as $element)
	{
		if (is_dir($element))
		{
			$tab_repertoire[] = $element;
		}
	}
	
	echo "<pre>";
	print_r($tab_repertoire);
	
	

function explorer($chemin){
    $lstat    = lstat($chemin);
    $mtime    = date('d/m/Y H:i:s', $lstat['mtime']);
    $filetype = filetype($chemin);
     
    // Affichage des infos sur le fichier $chemin
    echo "$chemin   type: $filetype size: $lstat[size]  mtime: $mtime\n";
     
    // Si $chemin est un dossier => on appelle la fonction explorer() pour chaque élément (fichier ou dossier) du dossier$chemin
    if( is_dir($chemin) ){
        $me = opendir($chemin);
        while( $child = readdir($me) ){
            if( $child != '.' && $child != '..' ){
                explorer( $chemin.DIRECTORY_SEPARATOR.$child );
            }
        }
    }
}
 
header('Content-type: text/plain');
explorer($dir);




function scanRecursiveDir($dir){
$files = scandir($dir);
$allFiles = array();
foreach($files as $file){
if($file!='.' && $file!='..'){
if(is_dir($dir.$file)){
$allFiles = array_merge($allFiles,Fonction::scanRecursiveDir($dir.$file));
}else{
$allFiles[]=str_replace('//','/',$dir.'/'.$file);
}
}
}
return $allFiles;
}





function explore_bis($homedir) {
    
    $dir = openDir($homedir);

    while ($file = readDir($dir)) {
        if (($file!=".")&&($file!="..")) {
            // Est-ce que $file est un répertoire ?
            // Pour le savoir il suffit d'appeler is_dir()
            // mais attention n'oublions pas d'ajouter
            // le chemin au nom du fichier
            if (is_dir("$homedir/$file")) {
                // oui ? alors explorons-le
                // REM: On pourrait en plus l'afficher
                explore("$homedir/$file");
            } else {
                // sinon, c'est un fichier et on l'affiche
                $cheminComplet = $homedir."/".$file;
                // (mais sans le chemin $_SERVER["DOCUMENT_ROOT"]
                echo substr($cheminComplet, strlen(dirname($_SERVER["DOCUMENT_ROOT"]))).
                     "<br/>";
            }
        }
    }
    
    // C'est fini. On ferme !
    closeDir($dir);
}

// Définition du chemin à explorer (adaptez a votre environnement)
//$repertoire = dirname($_SERVER["DOCUMENT_ROOT"])."/filedirexample";

echo "---------------------------------------------------------------";

// L'appel à la fonction
//explore_bis($dir);




function listFolderFiles($dir){
    $ffs = scandir($dir);
    echo '<ol>';
    foreach($ffs as $ff){
        if($ff != '.' && $ff != '..'){
            echo '<li>'.$ff;
            if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
            echo '</li>';
        }
    }
    echo '</ol>';
}

listFolderFiles($dir);


echo "**********************";


function listdirs($dir) {
    static $alldirs = array();
    $dirs = glob($dir . '/*', GLOB_ONLYDIR);
    if (count($dirs) > 0) {
        foreach ($dirs as $d) $alldirs[] = $d;
    }
    foreach ($dirs as $dir) listdirs($dir);
    return $alldirs;
}

$directory_list = listdirs($dir);
print_r($directory_list);

echo "**********************";


function getDirectory($path = '.', $ignore = '') {
    $dirTree = array ();
    $dirTreeTemp = array ();
    $ignore[] = '.';
    $ignore[] = '..';

    $dh = @opendir($path);

    while (false !== ($file = readdir($dh))) {

        if (!in_array($file, $ignore)) {
            if (!is_dir("$path/$file")) {
                
                $dirTree["$path"][] = $file;
                
            } else {
                
                $dirTreeTemp = getDirectory("$path/$file", $ignore);
                if (is_array($dirTreeTemp))$dirTree = array_merge($dirTree, $dirTreeTemp);
            }
        }
    }
    closedir($dh);
    
    return $dirTree;
}

$ignore = array('.htaccess', 'error_log', 'cgi-bin', 'php.ini', '.ftpquota');

$dirTree = getDirectory($dir, $ignore);

	echo "<pre>";
     print_r($dirTree);
    

	
	
	// Fonction de dessin basique d'un "array" PHP sous forme de treeview
// 10.05.2011 - gael@memepasmal.ch - http://www.memepasmal.ch/2011/05/10/php-array-treeview/
function drawTree($myarray, $level = 0)
{

    // Boucle sur chaque élément du tableau
    foreach($myarray as $key => $value)
    {
   
        // En cas d'objet on convertit en tableau
        if (is_object($value)) $value = (array)$value;
       
        // Si l'élément est un tableau
        if (is_array($value)) {
       
            // On l'affiche en tant que noeud
            echo '<div style="padding-left: ' . ($level * 20) . 'px">[' . $key . ']</div>';
           
            // Puis on affiche son arborescence, à un niveau supérieur
            drawTree($value, $level + 1);
           
        } else {
       
            // C'est une valeur, on l'affiche
            echo '<div style="padding-left: ' . ($level * 20) . 'px">' . $key . ' = <b>' . $value . '</b></div>';
           
        }
       
    }

}
	
	
	drawTree($dir, $level = 2);

?>