Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> DirectoryIterator - sortowanie od A do Z
deha21
post
Post #1





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Witam,
Czy da się za pomocą DirectoryIteratora wyświetlić pliki w kolejności alfabetycznej? Czytałem, że można w tabliach ale może jest inny sposób. Nie lubię tablic i szczerze powiedziawszy nie za bardzo rozumiem (IMG:style_emoticons/default/winksmiley.jpg)
Czy w takim kodzie da się posortować bez tablic?
  1. <?
  2. foreach ($dir as $file) {
  3. if (!$file->isDir()) {
  4. if(strripos($file,'.flv')==true || strripos($file,'.mov') || strripos($file,'.avi') || strripos($file,'.mpeg')|| strripos($file,'.mpeg') || strripos($file,'.mp4') || strripos($file,'.wmv')) {
  5.  
  6. echo "<li><a href='".$directory."/".$file."'><img src='images/movie.png' alt=''>&nbsp;".$file."</a>&nbsp;<a href='java script: confirmation($file)'><img src='images/delete.png' alt='[usuń]' title='Usuń'></a></li>";
  7.  
  8. }
  9. }
  10. }
  11. ?>

Pozdrawiam

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Whisller
post
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 5
Dołączył: 29.03.2006
Skąd: Poznań

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


Kiedyś robiłem coś podobnego i ogólnie można zrobić to tak - klasa sortowania znaleziona w internecie.

  1. $files = array();
  2.  
  3. $di = new DirectoryIterator( $this->path );
  4.  
  5. foreach( $di as $file )
  6. {
  7. $files[] = $file->getFileInfo();
  8. }
  9.  
  10. $oSort = new ObjSorter( &$files );
  11.  
  12. class ObjSorter
  13. {
  14. public function __construct( array $files, $sortBy = null )
  15. {
  16. if ( !is_null( $sortBy ) || !empty( $sortBy ) && $this->isAvailableToSort($sortBy) )
  17. {
  18. $this->sortBy = $sortBy;
  19. usort( $files, array($this, 'sort') );
  20. }
  21. }
  22.  
  23. private function isAvailableToSort( $sortBy = null )
  24. {
  25. if ( isset( $this->availableSortBy[$sortBy] ) )
  26. {
  27. return true;
  28. }
  29.  
  30. return false;
  31. }
  32.  
  33. public function sort($apple, $orange)
  34. {
  35. $property = 'get'.$this->sortBy;
  36.  
  37. if ($apple->{$property}() == $orange->{$property}()) return 0;
  38. return ($apple->{$property}() < $orange->{$property}()) ? -1 : 1;
  39. }
  40.  
  41. private $availableSortBy = array('Filename',
  42. 'Size');
  43. private $sortBy = null;
  44. }
Go to the top of the page
+Quote Post

Posty w temacie
- deha21   DirectoryIterator - sortowanie od A do Z   21.08.2009, 22:07:06
- - erix   CytatCzy da się za pomocą DirectoryIteratora wyświ...   21.08.2009, 22:20:09
- - ersiu   możesz spisać wszystkie pliki do tablicy, a następ...   21.08.2009, 22:45:02
- - deha21   Chyba sortuje ale nie wszystko bo wyskakuje mi lis...   22.08.2009, 08:09:34
- - Whisller   Kiedyś robiłem coś podobnego i ogólnie można zrobi...   22.08.2009, 08:21:28
- - deha21   Klasy, to za wysoko dla mnie jak jak na razie Wol...   22.08.2009, 09:42:27
- - erix   [PHP] pobierz, plaintext $catalogarr[] = a...   22.08.2009, 11:01:37
|- - deha21   Cytat(erix @ 22.08.2009, 12:01:37 ) [...   22.08.2009, 13:29:37
- - erix   No niby składniowo dobrze, ale logicznie, to jaki ...   22.08.2009, 13:42:02
- - deha21   Jak ma działać? Nie wiem, nie znam tej funkcji. Ta...   22.08.2009, 17:19:01
- - erix   No właśnie, więc czemu wrzucasz tablicę w tablicy,...   22.08.2009, 20:07:55
- - deha21   Hmm chyba mnie trochę oświeciłeś Najpierw deklaro...   23.08.2009, 10:10:50
- - erix   Może lepiej pokaż większą część skryptu.   23.08.2009, 20:03:26
- - deha21   Generalnie to coś takiego. Ominąłem kod który opis...   23.08.2009, 20:44:19
- - erix   I która jest to ta 71. linia?   23.08.2009, 21:41:29
- - deha21   71 to linia 26 w powyższym kodzie.   24.08.2009, 08:08:19
- - golaod   Skoro odpuściłeś wprowadzania tablicy do tablicy t...   24.08.2009, 09:28:20
- - deha21   Nie mam pojęcia Tak jak mówiłem tablice są mi obc...   24.08.2009, 10:55:29


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: 15.10.2025 - 02:02