(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
glob — Recherche des chemins qui vérifient un masque
$pattern
, int $flags
= 0
) : array|false
glob() recherche tous les chemins qui vérifient
le masque pattern
, en suivant les règles utilisées par
la fonction glob()
de la libc, qui sont les mêmes que celles
utilisées par le Shell en général.
pattern
Le masque. Aucun remplacement de tilde
(~
) ou de paramètre n'est fait.
Caractères spéciaux :
*
- Associe zéro ou plus de caractères.
?
- Associe exactement un caractère (n'importe
quel caractère).
[...]
- Associe un caractère d'un ensemble de
caractères. Si le premier caractère est !
,
associe n'importe quel caractères pas dans cet ensemble.
\
- Échappe le caractère suivant, sauf quand le
drapeau GLOB_NOESCAPE
est utilisé.
flags
Les drapeaux valides sont :
GLOB_MARK
: Ajoute un slash final (un anti-slash
sous Windows) à chaque dossier retourné
GLOB_NOSORT
: Retourne les fichiers dans l'ordre d'apparence (pas de tri).
Lorsque ce drapeau n'est pas utilisé, les noms des champs sont triés alphabétiquement
GLOB_NOCHECK
: Retourne le masque de recherche si aucun fichier n'a été trouvé
GLOB_NOESCAPE
: Ne protège aucun métacaractère d'un antislash
GLOB_BRACE
: Remplace {a,b,c} par 'a', 'b' ou 'c'
GLOB_ONLYDIR
: Ne retourne que les dossiers qui vérifient le masque
GLOB_ERR
: Stop lors d'une erreur (comme des dossiers non lisibles),
par défaut, les erreurs sont ignorées.
Note: Le drapeau
GLOB_BRACE
n'est pas disponible sur quelques systèmes non GNU, comme Solaris.
Retourne un tableau contenant les fichiers et dossiers correspondant au
masque, un tableau vide s'il n'y a aucune correspondance, ou false
si
une erreur survient.
Note:
Sous certains systèmes, il est impossible de distinguer un masque vide d'une erreur.
Exemple #1 Un moyen pratique pour remplacer opendir() par glob()
<?php
foreach (glob("*.txt") as $filename) {
echo "$filename occupe " . filesize($filename) . "\n";
}
?>
Résultat de l'exemple ci-dessus est similaire à :
funclist.txt occupe 44686 funcsummary.txt occupe 267625 quickref.txt occupe 137820
Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier examiné doit être accessible sur le système de fichiers du serveur.
Note: Cette fonction n'est pas disponible sur quelques systèmes (e.g. vieux Sun OS).