Napisałem skrypcik, który odczytuje nazwy plików z wybranego folderu (np. 05112004.log), rozbija nazwy na czynniki pierwsze, aby potem złożyć je do fomatu daty (np. 05.11.2004)...
Niestety wyświetla mi pozycje nie w takiej kolejności jakbym tego chciał, lecz w zależności od ustawień systemowych sortowania plików wg różnych kryteriów...
I moje pytanie brzmi: jak posortować nazwy plików w określonej kolejności?
Oto skrócony kod skryptu, a pod nim opis działania:
Kod
<?php
$dir = ".";
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if ($file != "." && $file != ".." && $file != "readstat.php" && $file != "addstat.php" && $file != "viewstat.php") {
$exp = explode(".", $file);
$md = md5($exp[0]);
$s1 = substr($exp[0], 0, 2);
$s2 = substr($exp[0], 2, 2);
$s3 = substr($exp[0], 4, 4);
echo("<a href=\"viewstat.php?ID=$exp[0]\">$s1.$s2.$s3 $file</a><br />");
}
}
closedir($dh);
}
}
?>
$dir = ".";
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if ($file != "." && $file != ".." && $file != "readstat.php" && $file != "addstat.php" && $file != "viewstat.php") {
$exp = explode(".", $file);
$md = md5($exp[0]);
$s1 = substr($exp[0], 0, 2);
$s2 = substr($exp[0], 2, 2);
$s3 = substr($exp[0], 4, 4);
echo("<a href=\"viewstat.php?ID=$exp[0]\">$s1.$s2.$s3 $file</a><br />");
}
}
closedir($dh);
}
}
?>
Całość działa w ten sposób, że odczytuje z danego folderu pliki z logami statystyk z każdego dnia, np. 03112004.log, 04112004.log... itp... gdzie ciąg znaków przed rozszerzeniem pliku to najzwyklejsza data w formacie ddmmrr...
Za pomocą funkcji explode() rozbijam poszczególne nazwy plików na człon daty i rozszerzenie.
Następnie z ciągu ddmmrr wyciągam za pomocą funkcji substr() fragmenty ciągu - odpowiednio: 2 pierwsze znaki (na dzień), 2 kolejne (na miesiąc) i 4 następne (na rok). Potem między te elementy w echo() wstawiam kropki aby stworzyć najzwyklejszy link wyświetlający datę wejścia na serwis...
Niestety w przeglądarce dostaję coś takiego:
Kod
02.11.2004
04.11.2004
03.11.2004
05.11.2004
06.11.2004
04.11.2004
03.11.2004
05.11.2004
06.11.2004
itp...
Jak zmodyfikować ten skrypt aby posortować wyświetlane daty np. rosnąco lub malejąco, a nie chaotycznie (vel według ustawień systemowych)

Z pozdrowieniami
Adrian