PHP 8.4.2 Released!

glob

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

globRecherche des chemins qui vérifient un masque

Description

glob(string $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.

Le comportement sur les systèmes Unix et macOS est déterminé par l'implémentation de glob() du système. Sous Windows, une implémentation conforme à la définition POSIX 1003.2 de glob() est utilisée, avec une extension pour gérer la convention [!...] permettant de nier une plage.

Liste de paramètres

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

N'importe laquelle des constantes GLOB_*.

Valeurs de retour

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. Sauf si GLOB_NOSORT a été utilisé, les noms seront triés alphanumériquement.

Exemples

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

Exemple #2 Exemple avec un motif plus complexe

<?php
foreach (glob("path/*/*.{txt,md}", \GLOB_BRACE) as $filename) {
echo
"$filename\n";
}
?>

Résultat de l'exemple ci-dessus est similaire à :

path/docs/mailinglist-rules.md
path/docs/README.md
path/docs/release-process.md
path/pear/install-pear.txt
path/Zend/README.md

Notes

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).

Voir aussi

  • opendir() - Ouvre un dossier, et récupère un pointeur dessus
  • readdir() - Lit une entrée du dossier
  • closedir() - Ferme le pointeur sur le dossier
  • fnmatch() - Teste un nom de fichier au moyen d'un masque de recherche

add a note

User Contributed Notes 1 note

up
4
Anonymous
3 years ago
Include dotfiles excluding . and .. special dirs with .[!.]*

<?php
$all_files
= array_merge(glob('.[!.]*'), glob('*'));
// or
$all_files = glob('{.[!.],}*', GLOB_BRACE);
?>
To Top