Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich mit der glob()-Funktion von PHP abgerufene Dateien nach ihrem letzten Änderungsdatum sortieren?

Wie kann ich mit der glob()-Funktion von PHP abgerufene Dateien nach ihrem letzten Änderungsdatum sortieren?

DDD
DDDOriginal
2024-11-28 15:12:14717Durchsuche

How Can I Sort Files Retrieved with PHP's glob() Function by Their Last Modified Date?

Sortieren von Dateien nach Datum der letzten Änderung mit glob()

Bei der Arbeit mit Dateisystemen ist es oft wünschenswert, Dateien basierend auf ihren Attributen zu organisieren , wie zum Beispiel ihre Änderungszeit. In PHP kann die Funktion glob() verwendet werden, um ein Array von Dateien abzurufen, aber standardmäßig behält sie nicht die Reihenfolge der Dateien bei.

Herausforderung: Sortieren nach Änderungsdatum

Angenommen, Sie haben ein Array von Dateien, die Sie mit glob() erhalten haben, und Sie möchten dieses Array basierend auf dem Datum/Uhrzeit-Stempel der letzten Änderung jeder Datei sortieren. Das Durchlaufen des Arrays und das manuelle Sortieren in ein separates Array ist eine praktikable Option, aber nicht der effizienteste oder bequemste Ansatz.

Lösung: Verwenden von create_function()

Vor PHP 7.2 bot die Funktion create_function() eine Möglichkeit, anonyme Funktionen zu definieren. Es könnte in Verbindung mit usort() verwendet werden, um die Änderungszeit von Dateien zu vergleichen und das Array entsprechend zu sortieren:

usort($myarray, create_function('$a,$b', 'return filemtime($a) - filemtime($b);'));

In diesem Code definiert create_function() eine anonyme Funktion, die die Änderungszeit der Dateien subtrahiert der ersten Datei ($a) von der der zweiten Datei ($b). Das Ergebnis dieser Subtraktion gibt ihre chronologische Reihenfolge an. usort() verwendet dann diese Funktion, um das $myarray basierend auf der Änderungszeit in aufsteigender Reihenfolge zu sortieren.

create_function() wird nicht mehr unterstützt

create_function() wurde leider nicht mehr verwendet in PHP 7.2 veraltet und in PHP 8.0 entfernt. Dies bedeutet, dass der obige Code in modernen PHP-Versionen nicht mehr funktioniert.

Alternative Lösungen

Alternative Lösungen zum Sortieren von Dateien nach dem letzten Änderungsdatum mithilfe von glob() include :

  • Verwenden einer Vergleichsfunktion mit usort(): Definieren Sie eine benutzerdefinierte Vergleichsfunktion, die die Funktion filemtime() nutzt und an diese übergibt usort().
  • Verwendung der Funktion sort() mit dem Flag SORT_NATURAL: Wenn Ihre Dateinamen so strukturiert sind, dass eine natürliche Sortierung möglich ist, können Sie die Funktion sort() mit dem Flag SORT_NATURAL verwenden.

Das obige ist der detaillierte Inhalt vonWie kann ich mit der glob()-Funktion von PHP abgerufene Dateien nach ihrem letzten Änderungsdatum sortieren?. 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