Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> generowanie listy plików - sortowanie rezultatów
wolguy
post
Post #1





Grupa: Zarejestrowani
Postów: 219
Pomógł: 10
Dołączył: 9.01.2005

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


Witam,
mam tutaj taki skrypcik:

  1. <?php
  2.  
  3. $dir = &#092;"katalog/\";
  4. function printDir($dir)
  5. {
  6. $fd = opendir($dir);
  7. if(!$fd) return false;
  8. while (($file = readdir($fd)) !== false){
  9.  if($file != &#092;".\" && $file != \"..\"){
  10. echo(&#092;"$file<BR>\");
  11.  }
  12. }
  13. closedir($fd);
  14. }
  15. printDir($dir);
  16. ?>


który generuję listę plików z katalogu ze zmiennej $dir.
Mam problem z określeniem jak ma być prezentowana zawartość kalalogu.
Na serwerze z Windowsem lista plików jest sortowana alfabetycznie, czyli plik na literkę "a" jest pierwszy na liśce, a na "z" jest ostatni. Natomiast pod Linuxem według daty wysłania pliku na serwer.
Czy da się dodać do tego skryptu jakąs opcję żeby pod Linuxem wyniki były sortowane alfabetycznie, ale od końca? Np że plik którego nazwa zaczyna sie na literke "z" będzie pierwszy na liście, a ten na "a" będzie ostatni?

Błagam! Pomóżcie mili Panowie (albo może znajdzie sie jakaś miła Pani?) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
hwao
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Dobra to moze ja pokaze co tam zlozylem...
Beda potrzebne 3 pliczki dam do nich linki zeby nie zasmiecac tematu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) na koniec pokaze jak to uzyc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

http://windforce.strefaphp.net/code/?file=...list.class.php5
http://windforce.strefaphp.net/code/?file=...ldir.class.php5
http://windforce.strefaphp.net/code/?file=...List.class.php5 (do sortowania intow mam inna, czyli wg wielkosci albo dat.)

Teraz zalaczamy to wszytko do 1 pliku i w nim piszemy

  1. <?php
  2.  
  3. $sortujWg = 'name'; // mozesz sobie z geta to pobrac np
  4. $sortujTyp = 'asc'; // Tutaj czyli w jakis sposob srotowac asc/desc
  5. $path = './'; // sciezka jaka ma poparsowac:)
  6.  
  7. // Tablica co jak sortowac (umnie jeszcze tu byla wielkosc i data dlatego ta tablica
  8. $sortObject = array( 
  9.  'name' => 'stringSortFileList',
  10.  'type' => 'stringSortFileList'
  11. );
  12.  
  13. // --- tu sie zaczyna dzialnie
  14. $dir = new $sortObject[$sortujWg]( new LocalDir( $path ), $sortujWg, $sortujTyp ); // utworzenie obiekt
  15. $dir->read(); // wczytuje sobie pliki
  16.  
  17. while( $file = $dir->getNext() ) { // wydobywanie po koleji
  18.  echo '<pre>'.print_r( $file, true ).'</pre>'; // wysweitlenie
  19. }
  20.  
  21. $dir->close();
  22.  
  23. ?>

No w sumie to tak dziala...
Jak chcesz prosciej to tam masz w klasie sortujacej (ta 3cia) jak uzylem array_multisort (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ktora dziala dokladnie tak jak w mysql Order by (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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: 12.10.2025 - 07:59