Sortierung Dateinamen
Hallo,
ich lese mittels glob() einen Ordner bzw. die darin enthaltenen Bilder aus. Nun haben die Dateinamen mit einer Zahl hinten drann. Unter Windows schaut das nun so aus: file_1.jpg file_10.jpg file_11.jpg file_12.jpg file_13.jpg file_2.jpg file_20.jpg file_21.jpg Wie kann ich das in eine sinnvolle Reihenfolge sortieren, also das nach file_1 auch file_2 kommt? sort() mit den vorhandenen Optionen bringt leider garnichts. |
Auf die schnelle fällt mir nur ein, dass Du einmal durch alle Dateinamen durchläufst, wobei Du in einem Array die Dateinamen speicherst und in einem Array die Zahlen, die nach dem '_' kommen.
Anschließend kannst Du dann das Array mit den Dateinamen mit Hilfe des Arrays, wo die Zahlen drin stehen sortieren, mittels: PHP: array_multisort - Manual |
Du meinst so:
Code:
#!/usr/bin/perl -w |
In C wäre das relativ einfach:
Code:
qsort( files, anzahl_elemente, grpesse_eines_elements, vergleich); |
PHP? Schau dir mal natsort() an.
|
Was ich immer wieder vergesse: Es gibt auch noch die Funktion PHP: usort - Manual, wo man eine benutzerdefinierte Vergleichsfunktion angeben kann, diese müsste dann nur entsprechend die Zahlen aus dem Dateinamen extrahieren und vergleichen.
// Edit: natsort() ist natürlich besser. :) |
natsort() ist genau das, was ich gesucht habe. Danke Euch, nun passt auch die Reihenfolge...
|
Es ging also um PHP, muss man ja auch Wissen
|
natsort() könnte man so machen:
Code:
vergleich( |
Sicher könnte man das so machen, wenn man diese Sprache verwenden würde :lol:
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 12:04 Uhr. |
Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
© Dirk H. 2003 - 2023