Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Drzewo katalogów i sortowanie
Kshyhoo
post
Post #1





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Witam. Nie mogę sobie poradzić ze sortowaniem alfabetycznym. Co nie spłodzę, to widzi mi nie te katalogi co ma, albo nie mogę zagłębiać się w drzewie. Dopowiem, że na lokalu pod Windowsem działa, na zdalnym (Linux), nie sortuje - nie wiem dlaczego. Kod bez sortowania:
  1. <?php
  2. $base_dir = $_SERVER['DOCUMENT_ROOT']; // wszystkie ścieżki w stosunku do serwera
  3. if ($dir_handle = opendir($base_dir."/".$path)) {
  4. while ($file = readdir($dir_handle)) {
  5. if (($file != ".") && ($file != "..")) {
  6. chdir($base_dir."/".$path);
  7. if (is_dir($file)) {
  8. if (substr($path, strlen($path) - 3, 3) == 'img') {
  9. echo '<a class="folder1" href="cpax.php?go=galeria&path='.$path.'/'.$file.'">'.$file.'</a>';
  10. } else {
  11. echo '<a class="folder2" href="cpax.php?go=galeria&path='.$path.'/'.$file.'">'.$file.'</a>';
  12. }
  13. }
  14. }
  15. }
  16. closedir($dir_handle);
  17. }
  18. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
MateuszS
post
Post #2





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Zapisz sobie listę plików do tablicy, potem ją posortuj jakąś gotową funkcją i wyświetl foreachem.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




No właśnie tak robię, ale napotykam problemy opisane wyżej, z którymi sobie nie radzę.
Go to the top of the page
+Quote Post
matx132
post
Post #4





Grupa: Zarejestrowani
Postów: 243
Pomógł: 19
Dołączył: 12.09.2005

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


Cytat(Kshyhoo @ 26.03.2010, 20:24:36 ) *
No właśnie tak robię, ale napotykam problemy opisane wyżej, z którymi sobie nie radzę.


ja już chyba ślepy jestem a nie widzę u Ciebie funkcji sort() która mogłaby posortować tablicę(IMG:style_emoticons/default/smile.gif) (lub odmianę sort'a np asort())
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #5





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Chyba masz rację, jesteś ślepy, bo napisałem "Kod bez sortowania".
Go to the top of the page
+Quote Post
MateuszS
post
Post #6





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Pokaż kod z sortowaniem, gotowy, ten który Ci nie działa.
Go to the top of the page
+Quote Post
matx132
post
Post #7





Grupa: Zarejestrowani
Postów: 243
Pomógł: 19
Dołączył: 12.09.2005

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


ja bym to zrobił tak

scandir od razu pokazuje alfabetycznie:)

  1. <?php
  2. $base_dir = $_SERVER['DOCUMENT_ROOT']; // wszystkie ścieżki w stosunku do serwera
  3. $file = scandir($base_dir);
  4. foreach($file as $files) {
  5. if (($files != ".") && ($files != "..")) {
  6. chdir($base_dir."/".$path);
  7. if (is_dir($files)) {
  8. if (substr($path, strlen($path) - 3, 3) == 'img') {
  9. echo '<a class="folder1" href="cpax.php?go=galeria&path='.$path.'/'.$files.'">'.$files.'</a><br/>';
  10. } else {
  11. echo '<a class="folder2" href="cpax.php?go=galeria&path='.$path.'/'.$files.'">'.$files.'</a><br/>';
  12. }
  13. }
  14. }
  15. }
  16. ?>
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #8





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Spłodziłem kilka, zazwyczaj problemem jest chodzenie po katalogach...
  1. $lista=array();
  2. $katalog = opendir($base_dir."/".$path);
  3. while ($plik = strtolower(readdir($katalog))) {
  4. if ($plik<>"." && $plik<>"..") if(is_dir($base_dir."/".$path."/".$plik))
  5. $lista[]=$plik;
  6. }
  7. closedir($katalog);
  8. sort($lista);
  9. for ($i=0;$i<count($lista);$i++) {
  10. echo '<a class="folder1" href="cpax.php?go=galeria&path='.$path.'/'.$lista[$i].'">'.$lista[$i].'</a>';
  11. }


EDIT: Złośliwy kod, zadziałało teraz, widocznie miałem literówkę...
@matx132, Twój kod u mnie nie działa.
EDIT: Po pwenych zabiegach zadziałał.
Dziękuję wszystkim za naprowadzenie

Ten post edytował Kshyhoo 26.03.2010, 20:57:45
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 - 12:35