Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> sortowanie, Funkcja zwracająca zawartość katalogu
john_doe
post
Post #1





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


Witam,

napisałem funkcję, która zwraca zawartość katalogu. Kiedy numeruję katalogi od 1 - 9 wiadomo idą po kolei. Gdy dodam katalog o nazwie "10" ustawia się po "1" i tak też funkcja zwraca to na www. Chciałbym po kolei...
  1. function readDirectoryAudience( $path )
  2. {
  3. $files = scandir( $path );
  4. //echo count($files); // tutaj zaczątek by wypisać, że KATALOG JEST PUSTY <-----
  5.  
  6. echo '<div id="menuList"> <ul>';
  7.  
  8. if (makeBackLink($_GET['level']) != '../galleries')
  9. {
  10. echo '<li><a href="show.php?level=' . makeBackLink($_GET['level']) . '">Go back...</a></li>';
  11. } else echo '<li><a href="index.php?level=' . makeBackLink($_GET['level']) . '">Go back...</a></li>';
  12.  
  13. echo '</ul>
  14. </div><br /><br /><br />';
  15.  
  16. for( $i = 0 ; $i <= (count($files) - 1) ; $i++ )
  17. {
  18.  
  19. if( $files[$i] == '..' ) continue;
  20.  
  21. if( $files[$i] == '.' ) continue;
  22.  
  23.  
  24. if( !is_file( $path . $files[$i] ) )
  25. {
  26. if( $files[$i] == '.' ) continue;
  27.  
  28. echo '<div class="photo">';
  29.  
  30. echo '<div><a href="show.php?level=' . $path . $files[$i] . '">' . $files[$i] . '</a></div>';
  31. //<img src="/pics/jj_logo.png" alt="" />
  32. echo $files[$i] . '</div>';
  33. }
  34. else
  35. {
  36. if( substr ( $files[$i], 0, 5 ) != 'mini_' ) continue; // if isn`t a mini then continue
  37.  
  38.  
  39. echo '<div class="photo">';
  40.  
  41. echo '<div><a href="' . $path . substr( $files[$i], 5, 20 ) . '" rel="lightbox[roadtrip]">
  42.  
  43. <img src="' . $path . $files[$i] . '" />
  44. </a></div>';
  45.  
  46. echo '</div>';
  47.  
  48. }
  49.  
  50. }
  51.  
  52. }

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
tehaha
post
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


no to chyba normalne, przynajmniej w total commanderze też tak jest, musisz nazwać tak żeby miały 0 z przodu, czyli 01, 02, 10, 20 wtedy będą po kolei a najlepiej kilka zer żebyś przy numerze 100 nie miał znowu tej sytuacji, czyli nazwy zrobić np. 0001, 0002, 0010, 0020
Go to the top of the page
+Quote Post
wookieb
post
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




http://pl2.php.net/natsort


--------------------
Go to the top of the page
+Quote Post
tehaha
post
Post #4





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


szkoda, że nie znałem tej funkcji:)
Go to the top of the page
+Quote Post
john_doe
post
Post #5





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


EXTRA,
dałem natsort() zaraz po wywołaniu
  1. $files = scandir( $path );


print_r zwraca ok

Array (
[0] => .
[1] => ..
[2] => 1
[4] => 2
[3] => 10
)

jednak jadąc w pętli for po $i i tak wyświetla po staremu bo klucze są nie po kolei

Ten post edytował john_doe 9.05.2010, 11:45:25
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




To użyj foreach

Ten post edytował wookieb 9.05.2010, 11:48:28


--------------------
Go to the top of the page
+Quote Post
john_doe
post
Post #7





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


no i kosi pięknie dzięki wookieb

poniżej kod dla zainteresowanych
  1. function readDirectoryAudience( $path )
  2. {
  3. $files = scandir( $path );
  4. natsort($files); print_r($files);
  5.  
  6. echo '<div id="menuList"> <ul>';
  7.  
  8. if (makeBackLink($_GET['level']) != '../galleries')
  9. {
  10. echo '<li><a href="show.php?level=' . makeBackLink($_GET['level']) . '">Go back...</a></li>';
  11. } else echo '<li><a href="index.php?level=' . makeBackLink($_GET['level']) . '">Go back...</a></li>';
  12.  
  13. echo '</ul>
  14. </div><br /><br /><br />';
  15.  
  16. foreach( $files as $key => $value )
  17. {
  18.  
  19. if( $value == '..' ) continue;
  20.  
  21. if( $value == '.' ) continue;
  22.  
  23.  
  24. if( !is_file( $path . $value ) )
  25. {
  26. if( $value == '.' ) continue;
  27.  
  28. echo '<div class="photo">';
  29.  
  30. echo '<div><a href="show.php?level=' . $path . $value . '">' . $value . '</a></div>';
  31.  
  32. echo $value . '</div>';
  33. }
  34. else
  35. {
  36. if( substr ( $value, 0, 5 ) != 'mini_' ) continue; // if isn`t a mini then continue
  37.  
  38.  
  39. echo '<div class="photo">';
  40.  
  41. echo '<div><a href="' . $path . substr( $value, 5, 20 ) . '" rel="lightbox[roadtrip]">
  42.  
  43. <img src="' . $path . $value . '" />
  44. </a></div>';
  45.  
  46. echo '</div>';
  47.  
  48. }
  49.  
  50. }
  51.  
  52. }

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 Aktualny czas: 20.08.2025 - 10:03