Bonjour,

j'ai une arborescence, par exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
-+--- rep1
  |       |
  |       +--- rep11
  |       |        |
  |       |        +---f1
  |       |        +---f2
  |       +--- rep12
  |       |        |
  |       |        +--- f3  
  |       +--- rep13
  +--- rep2
  |         |
  |         +--- rep21
  |         +--- rep22
  +--- rep3

le script perl suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
use strict ;
 
sub repertoire {
	my ( $rep,$niv)=@_;
	opendir D , "$rep" or die "Erreur:$!\n";
	my $entry ;
	while ( $entry = readdir(D)) {
		if ( $entry ne "." && $entry ne ".." ) {
			print "    " x $niv , "$entry\n";
			if ( -d "$rep/$entry" ) {
				repertoire("$rep/$entry",$niv+1);
			} 
		}
	}
	closedir D ;
}
 
repertoire(".",0);
me donne le résultat incomplet suivant

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
rep1
    rep11
        f1
        f2
Le script php équivalent

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
<?php
	function ScanDirectory($Directory,$niv){
		$MyDirectory = opendir($Directory) or die('Erreur');
		while($Entry = readdir($MyDirectory)) {
			if ( $Entry != '.' && $Entry != '..' ) {
				for ( $i=1;$i<=$niv;$i++){
					echo "    ";
				}
				echo "$Entry\n"; 
				if(is_dir($Directory.'/'.$Entry)  ) {
					ScanDirectory("$Directory/$Entry",$niv+1);
				}
			} 
		}
		closedir($MyDirectory);
	}
 
	ScanDirectory('.',0);
?>
donne le bon résultat:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
rep1
    rep11
        f1
        f2
    rep12
        f3
    rep13
rep2
    rep21
    rep22
rep3

Merci de votre aide