Forum und email

glob

(PHP 4 >= 4.3.0, PHP 5)

glob — Recherche des chemins qui vérifient un masque

Description

array glob ( string $pattern [, int $flags ] )

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. Aucun remplacement de tilde (~) ou de paramètre n'est fait.

glob() retourne un tableau contenant les fichiers et les dossiers trouvés, un tableau vide si aucun fichier/dossier n'est trouvé ou FALSE en cas d'erreur.

Valeurs autorisées pour flags :

  • GLOB_MARKAjoute un slash final à chaque élément retourné
  • GLOB_NOSORT : Retourne les fichiers tant l'ordre d'apparence (pas de tri)
  • GLOB_NOCHECK : Retourne le masque de recherche si aucun fichier n'a été trouvé
  • GLOB_NOESCAPE : Ne protège aucun méta-caractère d'un anti-slash
  • GLOB_BRACE : Remplace {a,b,c} par 'a', 'b' ou 'c'

    Note: Ce drapeau n'est pas disponible sur tous les systèmes GNU, comme Solaris.

  • GLOB_ONLYDIR : Ne retourne que les dossiers qui vérifient le masque

    Note: Avant PHP 4.3.3 GLOB_ONLYDIR n'était pas disponible sur Windows et les systèmes qui n'utilisent pas la bibliothèque GNU C.

  • GLOB_ERR : Stop lors d'une erreur (comme des dossiers non lisibles), par défaut, les erreurs sont ignorées. Ajouté en PHP 5.1.

Example#1 Un moyen pratique pour remplacer opendir() par glob()

<?php
$files 
glob("*.txt");
foreach (
$files as $filename) {
   echo 
"$filename occupe " filesize($filename) . " octets\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

funclist.txt occupe 44686 octets
funcsummary.txt occupe 267625 octets
quickref.txt occupe 137820 octets

Note: Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note: Cette fonction n'est pas disponible sur quelques systèmes (e.g. vieux Sun OS).

Voir aussi opendir(), readdir(), closedir() et fnmatch().