glob

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

globFindet Dateinamen, die mit einem Muster übereinstimmen

Beschreibung

glob(string $pattern, int $flags = 0): array|false

glob() findet Dateipfade, die mit dem angegebenen Muster pattern übereinstimmen. Die Übereinstimmung wird nach den gleichen Regeln geprüft, wie in der glob()-Funktion der C-Bibliothek und entspricht weitgehend den Regeln in den üblichen Kommandozeilen-Shells.

Parameter-Liste

pattern

Das Suchmuster. Parameter- und Tilde-Ersetzungen finden nicht statt.

Sonderzeichen:

  • * - Kein oder mehr Zeichen.
  • ? - Genau ein (beliebiges) Zeichen.
  • [...] - Ein Zeichen einer Gruppe von Zeichen. Ist erste das Zeichen ein !, dann jedes Zeichen, das nicht in der Gruppe enthalten ist.
  • \ - Maskiert das folgende Zeichen, es sei denn, das Flag GLOB_NOESCAPE wurde verwendet.

flags

Mögliche Flags:

GLOB_BRACE (int)
{a,b,c} expandieren, sodass es auf 'a', 'b' oder 'c' passt

Hinweis: GLOB_BRACE ist auf einigen Nicht-GNU-Systemen, wie Solaris oder Alpine Linux, nicht verfügbar.

GLOB_ERR (int)
Bei Lesefehlern (z. B. unlesbare Verzeichnisse) stoppen; standardmäßig werden Fehler ignoriert.
GLOB_ONLYDIR (int)
Nur Verzeichniseinträge zurückgeben, die dem Muster entsprechen
GLOB_MARK (int)
An jedes zurückgegebene Verzeichnis einen Schrägstrich anhängen (unter Windows einen Backslash)
GLOB_NOSORT (int)
Die Dateien so zurückgeben, wie sie im Verzeichnis erscheinen (keine Sortierung). Ohne dieses Flag werden die Pfadnamen alphabetisch sortiert.
GLOB_NOCHECK (int)
Wenn keine passenden Dateien gefunden wurden, wird das Suchmuster zurückgegeben.
GLOB_NOESCAPE (int)
Backslashes bewirken keine Maskierung von Metazeichen.
GLOB_AVAILABLE_FLAGS (int)
Die Kombination aller GLOB_*-Flags. Entspricht 0 | GLOB_BRACE | GLOB_MARK | GLOB_NOSORT | GLOB_NOCHECK | GLOB_NOESCAPE | GLOB_ERR | GLOB_ONLYDIR

Rückgabewerte

Gibt ein Array mit den übereinstimmenden Datei- und Verzeichnisnamen zurück. Wenn keine Treffer gefunden wurden, wird ein leeres Array zurückgegeben, und im Fehlerfall false.

Hinweis:

Auf manchen Systemen ist es nicht möglich, zwischen einer leeren Ergebnismenge und einem aufgetretenen Fehler zu unterscheiden.

Beispiele

Beispiel #1 Einfacher Ersatz von opendir() etc. durch glob()

<?php
foreach (glob("*.txt") as $filename) {
echo
"$filename - Größe: " . filesize($filename) . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

funclist.txt - Größe: 44686
funcsummary.txt - Größe: 267625
quickref.txt - Größe: 137820

Anmerkungen

Hinweis: Diese Funktion kann nicht mit entfernten Dateien arbeiten, da der Zugriff auf die Datei, die bearbeitet werden soll, über das Dateisystem des Servers möglich sein muss.

Hinweis: Diese Funktion ist nicht auf allen Systemen verfügbar (z. B. alten Sun-OS-Versionen).

Siehe auch

  • opendir() - Öffnet ein Verzeichnis-Handle
  • readdir() - Liest einen Eintrag aus einem Verzeichnis-Handle
  • closedir() - Schließt ein Verzeichnis-Handle
  • fnmatch() - Match filename against a pattern

add a note

User Contributed Notes 1 note

up
5
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