Include dotfiles excluding . and .. special dirs with .[!.]*
<?php
$all_files = array_merge(glob('.[!.]*'), glob('*'));
// or
$all_files = glob('{.[!.],}*', GLOB_BRACE);
?>
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
glob — Findet Dateinamen, die mit einem Muster übereinstimmen
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.
Das Verhalten auf Unix- und macOS-Systemen wird durch die systemeigene
Implementierung von glob() bestimmt. Unter Windows wird eine Implementierung
verwendet, die der POSIX-Definition 1003.2 für glob() entspricht und eine
Erweiterung enthält, mit der die [!...]
-Konvention für
die Negierung eines Bereichs behandelt werden kann.
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
Jede der GLOB_*
-Konstanten.
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
.
Wenn nicht GLOB_NOSORT
verwendet wird, werden die Namen
alphanumerisch sortiert.
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
Beispiel #2 Beispiel mit einem komplexeren Muster
<?php
foreach (glob("path/*/*.{txt,md}", \GLOB_BRACE) as $filename) {
echo "$filename\n";
}
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
path/docs/mailinglist-rules.md path/docs/README.md path/docs/release-process.md path/pear/install-pear.txt path/Zend/README.md
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).