Parcours d'arborescence de fichiers Fonctions |
La fonction ~ls_tree() est une fonction de liste permettant de parcourir une arborescence de fichiers.
Son fonctionnement tient à la fois de la fonction ~ls() et de la fonction ~list_tree().
Elle prend six arguments plus les sélecteurs:
- Le répertoire à lister
- L'expression rationelle de filtrage des répertoires
- l'expression rationelle de filtrage des fichiers
- Tri des fichiers en fonction de :
- "M" : par date
- "MR" : par date inverse
- "S" : par chaîne
- "SR" : par chaîne inverse
- "N" par ordre numérique
- "NR" : par ordre numérique inverse
- "RR": les fichiers sont retournés dans un ordre aléatoire
- Les sélecteurs
Les sélecteurs supportés sont: LF, LL, LM, LP, LTB, LTT, LD et L1.
Exemple:
~ls_tree(
"./templeet/modules",
"",
"/a/",
'SDL',
'LF','Mon arbre : <br />',
'LL','<br />',
'LTT','<ul style="background-color: #FF~dechex(255-ls_tree_fld('tdepth')*10*0.5)~dechex(255-ls_tree_fld('tdepth')*10);
border: 1px solid black;
list-style-position: inside;">\n',
'LTB','~ls_tree_fld('totalfile')/~ls_tree_fld('allfile')</ul>',
'LM','<li>~ls_tree_fld('file') ( ~ls_tree_fld('tdepth'), ~ls_tree_fld('counter'), ~ls_tree_fld('tcounter'))',
'LP','</li>\n',
'LD','J\'ai perdu mon chêne, mon alter égo...'
)
Le résultat est:
Mon arbre :
- array.php ( 0, 1, 1)
- arraysplit.php ( 0, 2, 2)
- auth.php ( 0, 3, 3)
- authedit.php ( 0, 4, 4)
- authtools.php ( 0, 5, 5)
- binoperator.php ( 0, 6, 6)
- cache.php ( 0, 7, 7)
- fieldfileaccess.php ( 0, 8, 8)
- filearray.php ( 0, 9, 9)
- filename.php ( 0, 10, 10)
- getglobals.php ( 0, 11, 11)
- image.php ( 0, 12, 12)
- lang.php ( 0, 13, 13)
- treewalk.php ( 0, 14, 14)
- auth ( 0, 15, 15)
- auth_db.php ( 1, 16, 1)
- auth_file.php ( 1, 17, 2) 2/3
- lib ( 0, 19, 16)
- configurator.php ( 1, 20, 1) 1/1
- list ( 0, 22, 17)
-
0/4
17/35
La fonction ~ls_tree_fld() prend un argument.
- Le type d'information à renvoyer :
- file : renvoie le nom du fichier complet
- rfile : renvoie le nom du fichier sans l'extension
- totalfile : retourne le nombre de fichiers renvoyés par ~ls (ce qui ne correspond pas forcement au nombre de fichiers présent dans le répertoire)
- allfile : retourne le nombre de fichiers présent dans le répertoire
- counter : compteur du nombre d'itérations effectuées par ~ls
- matches : tableau contenant les éléments matchés sur le nom du fichier (voir exemple ci-dessous)
- atime : date de dernier accès (Unix timestamp)
- ctime : date de dernier changement d'inode (Unix timestamp)
- mtime : date de dernière modification (Unix timestamp)
- blksize : taille de bloc
- blocks : nombre de blocs alloués
- dev : volume
- ino : inode
- mode : droits d'accès à l'inode
- nlink : nombre de liens
- uid : userid du propriétaire
- gid : groupid du propriétaire
- rdev : type de volume
- size : taille en octets