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 6.03.2010, 06:27:06
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 6.03.2010, 07:34:43
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 19.03.2010, 13:47:31
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.07.2025 - 14:58