Liste des fichiers d'un répertoire
|
La fonction ~ls() est une fonction de liste.
Elle prend six arguments plus les sélecteurs:
- Le répertoire à lister
- Le regexp des fichiers (ex: "/\.txt$/i")
- Le type de fichiers à lister : file ou dir
- 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
- Indice (à partir du n ième fichier)
- Nombre de fichiers à afficher et/ou traiter.
- Les sélecteurs
Les sélecteurs supportés sont: LF, LM, LR, LL, LN, LD,L1 et LS.
Exemple :
~ls( "/mon/repertoire", "/\.txt$/i", "file", "NR", "0", "10",
"LF",
"Voici le nom des 10 derniers fichiers .txt de mon répertoire /mon/repertoire",
"LM",
"~ls_fld("file") <br />"
)
La fonction ~ls_fld() prend trois arguments.
- 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, si le volume est *
- size : taille en octets
- le niveau d'imbrication (optionnel, 0 par défaut)
- la valeur par défaut à renvoyer si la valeur est vide
Exemple :
~ls( "templeet/modules/", "/^(.*i).*\.php$/i", "file", "S", "0", ,
"LF",
<![LF[Voici la liste des fichiers .php contenant la lettre "i" dans leur nom avec une extraction de la chaîne précédente:
]LF]>,
"LM",
"~ls_fld("file"):~string(
{
matches=ls_fld("matches");
matches[1];
})
"
)
Le résultat est:
Voici la liste des fichiers .php contenant la lettre "i" dans leur nom avec une extraction de la chaîne précédente:
arraysplit.php:arrayspli
authedit.php:authedi
binoperator.php:bi
fieldfileaccess.php:fieldfi
filearray.php:fi
filename.php:fi
filesystem.php:fi
image.php:i
ip.php:i
lines.php:li
list.php:li
list_tree.php:li
redirect.php:redi
time.php:ti
xhtmlize.php:xhtmli
Dans un souci d'hamonisation le champs 'count' en Templeet 3.5 devient 'counter' en Templeet 4