Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]Sortowanie listy plików według daty dodania, Jak posortować liste plików według daty ?
noobek21
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 28.09.2009

Ostrzeżenie: (0%)
-----


Chcę dodać do tego skryptu sortowanie według daty.
  1. <?
  2. $plik="ogloszenia";
  3. $dir=opendir($plik);
  4. $lista="<UL>";
  5.  
  6. while($nazwa=readdir($dir))
  7. {
  8. if(($nazwa!=".")&&($nazwa!=".."))
  9. {
  10.  
  11. $id=date ("Ymdhis", filemtime("ogloszenia/$nazwa"));
  12. $s= str_replace('.php', ' ', $nazwa);
  13. $lista.='<a id=".$id." href="ogloszenia/'."$nazwa".'">'.$s.'<br></a>'.date ("d-m-Y H:i:s", filemtime("ogloszenia/$nazwa")).'<br>';
  14. }
  15. }
  16.  
  17. $lista.="</UL>";
  18.  
  19. closedir($dir);
  20.  
  21. $s= str_replace('.php', ' ', $lista);
  22.  
  23. echo $lista;
  24. ?>


I teraz jak dodać do tego sortowanie plików według ID ? (IMG:style_emoticons/default/wstydnis.gif)

Ten post edytował noobek21 28.09.2009, 20:49:29
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
piotrooo89
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




więc opiszę to w ten sposób. glob stworzy Ci tablice z wszystkich plików, następnie iteruj po niej foreach'em wraz z użyciem funkcji filemtime, dane zapisuj również do tablicy (najlepiej wielowymiarowej), w wyniku otrzymasz tablice oraz nazwy pliku wraz z jej datą. struktura tablicy może wyglądać tak:

$tab['data'][0]='nazwa_pliku1';
$tab['data'][1]='nazwa_pliku2';
itd.

później już tylko jakieś sortowanie tablic wielowymiarowych po dacie i gotowe.

//EDIT

postanowiłem się pobawić i zrobiłem Ci coś takiego, myślę że Ci się przyda.

  1. $pliki = glob ('*.txt');
  2. $i=0;
  3. foreach($pliki as $key => $value)
  4. {
  5. $data = date ("Y-m-d H:i:s", filemtime($value));
  6. $tab[$i]['data'] = $data;
  7. $tab[$i]['plik'] = $value;
  8. $i++;
  9. }
  10. print_r($tab);
  11. foreach ($tab as $klucz => $wiersz)
  12. {
  13. $date[$klucz] = $wiersz['data'];
  14. $plik[$klucz] = $wiersz['plik'];
  15. }
  16. array_multisort($date, SORT_DESC, $plik, SORT_DESC, $tab);
  17. print_r($tab);


tak wyglądają pliki nieposortowane wg daty:
Kod
Array (
[0] => Array (
    [data] => 2009-09-29 08:15:47
    [plik] => 1.txt )
[1] => Array (
    [data] => 2009-09-29 08:15:52
    [plik] => 2.txt )
[2] => Array (
    [data] => 2009-09-29 08:25:13
    [plik] => 3.txt )
[3] => Array (
    [data] => 2009-09-29 08:39:12
    [plik] => 4.txt )
[4] => Array (
    [data] => 2009-09-29 08:38:58
    [plik] => 5.txt ) )


a tak po sortowaniu wg daty:
Kod
Array (
[0] => Array (
    [data] => 2009-09-29 08:39:12
    [plik] => 4.txt )
[1] => Array (
    [data] => 2009-09-29 08:38:58
    [plik] => 5.txt )
[2] => Array (
    [data] => 2009-09-29 08:25:13
    [plik] => 3.txt )
[3] => Array (
    [data] => 2009-09-29 08:15:52
    [plik] => 2.txt )
[4] => Array (
    [data] => 2009-09-29 08:15:47
    [plik] => 1.txt ) )


Ten post edytował piotrooo89 29.09.2009, 07:46:27
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 09:07