Profil supprimé | Bonjour à tous,
Bon, ca peut paraitre bizarre... mais bon, je suis en train de faire un petit site Web, et je voudrait pouvoir afficher le contenus de dossier pour des download ou bien même le plan du site avec cette fonction...
Elle prend en argument un tableau associatif contenant les noms des dossier et des fichiers de toute l'arborescence comme indiqué ici...
le resultat que je voudrait avoir est marqué en exemple sur cette même page, et bien sur le resultat de la fonction est entre les 2...
Tout marche, sauf quand on arrive au dernier repertoire... il m'affiche pleins de | en trop...
Si quelqu'un arrive à voir comment est ce que je peux m'arrnager pour que ca marche, ca serait sympa...
et puis si vous avez des idées pour optimiser tout ce bazar, je suis aussi preneur...
la fonction :
Code :
- <?php
- function asciirec( $var, $dig = 0 )
- {
- // Declaration des chaines utilisées
- $item = '+--' ;
- $decal = ' ' ;
- $indic = '|' ;
-
- echo $var[0] , "\n" ;
- unset( $var[0] ) ;
-
- // créé la premiere ligne...
- $tmp = $dig ;
- do{
- echo $indic ;
-
- if( $tmp != 0 ) echo $decal ;
- else echo "\n" ;
- $tmp-- ;
- }while( $tmp >= 0 ) ;
-
- // on parcours chaque elements du repertoire
- for($i = 1 ; $i <= count( $var ) ; $i++ )
- {
- // si c'est un repertoire, alors on recurse...
- if( is_array( $var[$i] ) and count( $var[$i] ) != 1 )
- {
- //... en n'oubliant pas de decaler l'item...
- for( $j = 0 ;$j < $dig ; $j++ )
- echo $indic, $decal ;
- echo $item ;
- asciirec( $var[$i] , $dig+1 ) ;
- }
- else
- //Sinon on affiche l'element...
- {
- //tout aussi décalé...
- $tmp = $dig -1 ;
- while( $tmp >= 0 )
- {
- echo $indic,$decal;
- $tmp-- ;
- }
-
- //dirty Hack for dir's names...
- if( is_array( $var[$i] ) ) $var[$i] = $var[$i][0] ;
-
- // affichage du fichier...
- echo $item , $var[$i] , "\n" ;
-
- // et bien sur on fait les decalages pour les fins de
- // directory...
- if( $i == count( $var ) and $dig != 0 )
- {
- $tmp = $dig-1 ;
- do{
- echo $indic ;
-
- if( $tmp != 0 ) echo $decal ;
- else echo "\n" ;
- $tmp-- ;
- }while( $tmp >= 0 ) ;
- }
- }
- }
- }
- ?>
|
|