Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wyświetlanie zawartości plików, od najwcześniej dodanego..
tofik1778983
post
Post #1





Grupa: Zarejestrowani
Postów: 144
Pomógł: 1
Dołączył: 22.11.2007
Skąd: lbn

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


Witam.
mam sobie folder z plikami *.txt i chciałbym wyświetlić sobie ich zawartość, ale w taki sposób aby pliki utwożone najwcześniej były wyświetlone na początku listy.
Trzeba sprawdzić date utwozenia.. to wszystko wiem.. ale jak zrobić to sortowanie??
Może jest do tego jakaś gotowa funkcja??
Go to the top of the page
+Quote Post
Quantum
post
Post #2





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


  1.  
  2. $txt_files = glob('./folder/*.txt');
  3.  
  4. (
  5. array_map('filemtime', $txt_files),
  6. SORT_NUMERIC,
  7. SORT_ASC,
  8. $txt_files
  9. );
  10.  


teraz w $txt_files masz posortowaną tablicę (flaga SORT_ASC - od najwcześniejszej do najpóźniejszej daty modifikacji, SORT_DESC - na odwrót)
Go to the top of the page
+Quote Post
tofik1778983
post
Post #3





Grupa: Zarejestrowani
Postów: 144
Pomógł: 1
Dołączył: 22.11.2007
Skąd: lbn

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


Ok dzięki
Miałem robić tą funkcją ale nie chciałem przerabiać tego co już mam, ale i tak w miarę pisania okazało się ze będzie trzeba ;]
Już zaczynałem pisać coś w stylu sortowania bombelkowego .. ale i tak nie wyszło z moim kodem.

Witam ponownie.
Nie będę tworzył kolejnego wątku bo pytanie podobne..
Jak zmodyfikować taki kod aby dołączyć do niego sortowanie alfabetyczne..
przykładowa nazwa pliku wygląda tak: 'jakaś nazwa.ddmmrrrggmmss.txt'

  1. $dir=opendir($folder);
  2. while($nazwa=readdir($dir))
  3. {
  4.  
  5. if(($nazwa==".") or ($nazwa=="..")) {print"";}
  6. else{
  7.  
  8. $wpisana_nazwa_pliku=explode(".",$nazwa); // odcinam sama nazwe bez daty i rozszerzenia
  9. $data2=filemtime($folder.'/'.$nazwa);
  10.  
  11. $plikc=fopen($folder.'/'.$nazwa, r);
  12. $czytaj=fgets($plikc);
  13. $text=explode("|:|:|", $czytaj);
  14.  
  15. echo '. <span class=st1><a href="'. $text[1] .'" target="blank">'. $wpisana_nazwa_pliku[0] .'</span></a> <br>';
  16. if($text[2]==''){ echo '';}
  17. else{
  18. echo '<span class="st4">Opis: '. $text[2].'</span><br>';
  19. }
  20. echo '<span class="st2">dodał/a:<b><span class="st3"> '.$text[0] .'</span> </b> '. $text[3] .'</span><br>';
  21. //echo 'link: '.$text[1] ; // dodany link
  22. //echo '<hr class="hr1">';
  23.  
  24. }
  25. }
  26. closedir($dir);


Próbowałem tak ale teraz nie działa mi funkcja explode()
  1. $ile_plikow=0;
  2. $dirArray = array();
  3. $dir=opendir($folder);
  4. while($file = readdir($dir)){
  5. if ($file === '.' || $file === '.') continue;
  6. $dirArray[] = $file; //przypisujemy do kolejnego elementu tablicy nazwę pliku
  7. $ile_plikow++;
  8. }
  9. closedir($dir);
  10. sort($dirArray);
  11.  
  12. //echo implode("\n",$dirArray); //zamiast \n można wstawić np. <br>
  13.  
  14.  
  15. for($i=0;$i<$ile_plikow;$i++)
  16. {
  17.  
  18. $wpisana_nazwa_pliku=explode(".", $dirArray[$i]); // odcinam sama nazwe bez daty i rozszerzenia
  19.  
  20.  
  21. if(($nazwa==".") or ($nazwa=="..")) continue;
  22.  
  23.  
  24. echo $wpisana_nazwa_pliku .'<br>';
  25. echo $dirArray[$i].'<br>';
  26.  
  27.  
  28. }


Dobra działa zrobiłem kilka głupich błędów..
powinno byc
  1. #
  2. echo $wpisana_nazwa_pliku[0] .'<br>';
  3. if ($file === '.' || $file === '..') continue;
i takie tam

Ten post edytował tofik1778983 19.03.2010, 14:57:04
Go to the top of the page
+Quote Post

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: 22.08.2025 - 18:19