Heim  >  Artikel  >  Backend-Entwicklung  >  Verwenden Sie die PHP-Funktion glob(), um Dateien anhand von Platzhalterzeichen in Dateinamen zu finden

Verwenden Sie die PHP-Funktion glob(), um Dateien anhand von Platzhalterzeichen in Dateinamen zu finden

PHPz
PHPzOriginal
2023-06-27 11:16:291629Durchsuche

Bei der Verarbeitung von Dateien stoßen wir häufig auf Situationen, in denen wir bestimmte Dateien finden müssen. Wenn die Anzahl der Dateien gering ist, kann die manuelle Suche verwendet werden. Wenn es sich jedoch um eine große Anzahl von Dateien handelt, wird die manuelle Suche überwältigend. Zu diesem Zeitpunkt kommt eine nützliche Funktion zum Einsatz: die Funktion glob(). Die Funktion

glob() ist eine sehr praktische Funktion in PHP, die es uns ermöglicht, Dateien und Verzeichnisse durch Angabe von Platzhalterzeichen zu finden. Die Funktion glob() kann die gefundenen Dateien auch anhand verschiedener Parameter sortieren und filtern, sodass wir schnell die benötigten Dateien unter einer großen Anzahl von Dateien finden können.

Im Folgenden beginnen wir mit der grundlegenden Verwendung der Funktion und führen nach und nach in die Verwendung der Funktion glob() ein. Die grundlegende Verwendung der Funktion

glob()

glob() ist sehr einfach. Sie hat nur einen Parameter – ein Platzhalterzeichen, das die zu findende Datei darstellt. Das Folgende ist ein Beispiel:

$files = glob('/path/to/files/*.jpg');

Das Platzhalterzeichen in diesem Beispiel ist „*.jpg“, was bedeutet, dass nach allen Dateien mit dem Suffix „.jpg“ im Verzeichnis /path/to/files/ gesucht wird. Die gefundenen Ergebnisse werden in Form eines Arrays zurückgegeben.

Wenn wir alle Dateien und Unterverzeichnisse in einem bestimmten Verzeichnis finden möchten, können wir den Platzhalter „**“ verwenden:

$files = glob('/path/to/files/**');

Auf diese Weise können wir alle Dateien und Verzeichnisse im Verzeichnis /path/to/files/ finden , einschließlich der Unterverzeichnisse, Dateien und Verzeichnisse unten.

Darüber hinaus können wir auch eckige Klammern in Wildcards verwenden, um einen Zeichensatz anzugeben:

$files = glob('/path/to/files/[abc]*');

Auf diese Weise können Sie alle Dateien finden, die mit „a“, „b“ oder „c“ beginnen.

Erweiterte Verwendung der glob()-Funktion

Die grundlegende Verwendung der glob()-Funktion wird oben vorgestellt. Wir können jedoch auch Parameter festlegen, um die gefundenen Ergebnisse zu sortieren und zu filtern.

Stellen Sie die Sortiermethode ein

Durch Festlegen des zweiten Parameters (der den Sortiermodus angibt) können wir die gefundenen Ergebnisse sortieren. Im Folgenden sind einige häufig verwendete Sortiermodi aufgeführt:

  • GLOB_NOSORT: Der Standardsortiermodus, es wird keine Sortierung durchgeführt.
  • GLOB_NOCHECK: Keine Fehlerprüfung.
  • GLOB_NOCASE: Groß- und Kleinschreibung wird nicht beachtet.
  • GLOB_BRACE: Klammererweiterung aktivieren, Sie können geschweifte Klammern in Platzhaltern verwenden.
  • GLOB_ONLYDIR: Nur Verzeichnisse durchsuchen.
  • GLOB_ERR: Stoppen Sie die Suche, wenn ein Fehler auftritt.

Wenn wir beispielsweise alle Dateien mit dem Suffix „.jpg“ in umgekehrter Reihenfolge nach Namen sortieren möchten, können wir den folgenden Code verwenden:

$files = glob('/path/to/files/*.jpg', GLOB_NOSORT|GLOB_NOCHECK);
rsort($files);

In diesem Beispiel verwenden wir zwei Konstanten GLOB_NOSORT und GLOB_NOCHECK, um die festzulegen Sortiermethode.

Filter einstellen

Durch Festlegen des dritten Parameters (der den Filter angibt) können wir die gefundenen Ergebnisse filtern. Hier sind einige häufig verwendete Filter:

  • GLOB_MARK: Fügen Sie „/“ zu den Ergebnissen hinzu, um ein Verzeichnis anzugeben.
  • GLOB_NOSORT: Keine Sortierung.
  • GLOB_ONLYDIR: Nur Verzeichnisse durchsuchen.
  • GLOB_ERR: Stoppen Sie die Suche, wenn ein Fehler auftritt.
  • GLOB_BRACE: Klammererweiterung aktivieren, Sie können geschweifte Klammern in Platzhaltern verwenden.
  • GLOB_NOESCAPE: Wenn diese Option aktiviert ist, werden „“ in Platzhalterzeichen nicht maskiert.
  • GLOB_NOCHECK: Keine Fehlerprüfung.
  • GLOB_NOCASE: Bei Dateinamen wird die Groß-/Kleinschreibung nicht beachtet.

Wenn wir beispielsweise nur Dateien mit einer Größe von 100 MB oder weniger finden müssen, können wir den folgenden Code verwenden:

$files = glob('/path/to/files/*.*');
array_filter($files, function($file) {
  return filesize($file) <= 100 * 1024 * 1024;
});

In diesem Beispiel verwenden wir die Funktion array_filter(), um die Ergebnisse zu filtern.

Zusammenfassung

Anhand der obigen Beispiele haben wir gelernt, wie man die Funktion glob() verwendet, um in PHP nach Dateien und Verzeichnissen zu suchen. Die Funktion glob() ist sehr einfach und praktisch und verfügt über viele Parameter und Verwendungsmöglichkeiten, die eine komplexere und flexiblere Dateisuche und -verarbeitung ermöglichen. In PHP-Projekten können wir die Funktion glob() wählen, um eine große Anzahl von Dateien und Verzeichnissen einfach und effizient zu verarbeiten.

Das obige ist der detaillierte Inhalt vonVerwenden Sie die PHP-Funktion glob(), um Dateien anhand von Platzhalterzeichen in Dateinamen zu finden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn