![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%) ![]() ![]() |
Witam
Za własną potrzebą postanowiłem napisać kod który wyświetli mi wszystkie pliki i katalogi:
Funkcja spełnia swoje zadanie ale wyświetla wszystko jak leci w nieuporządkowanej kolejności. Jak zmodyfikować kod aby działa coś w sposób drzewka tj. Sortuje Katalogi i pliku (pierwsze są katalogi następnie pliki) jeśli w katalogu są inne katalogi i pliki robi to samo ale np o jeden tabulator do przodu. Przykład: Kod -Katalog1 ---plik1 ---plik2 -Katalog2 ---Katalog2.1 ------plik1 ------plik2 ---Katalog2.2 ------Katalog2.2.1 ---------plik1 ------Katalog2.2.2 ------Katalog2.2.3 ---------plik1 ---Katalog2.3 -Katalog3 -plik1 -plik2 -plik3 byłbym wielce wdzięczny za pomoc pozdrawiam Chmura |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 076 Pomógł: 62 Dołączył: 6.03.2005 Skąd: Wroc Ostrzeżenie: (0%) ![]() ![]() |
Skoro sam to napisałeś to powinieneś poradzić sobie z przerobieniem readdir() na scandir()
-------------------- The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1 MySQL Client API version : 5.0.27 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%) ![]() ![]() |
Gitara, jak na moje jest pierwsza klasa. Dzięki za pomoc.
PS. Ja zastosowałem <lu><li></li></lu> bo nie potrafiłem inaczej "tabulować" jest jakieś inne rozwiązanie? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 662 Pomógł: 45 Dołączył: 26.03.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Po 1 to nie jest pierwsza klasa
![]() ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%) ![]() ![]() |
czemu nie jest pierwsza klasa?
nie mogłem dać ponieważ dziwne rzeczy się robią, nie mam głowy żeby to opisać, śmiało możesz sprawdzić chociaż w skrócie robią się takie złe rzeczy ze pliki/katalogi w tym samym katalogu także co są przesuwane. Edit Przepraszam, tak sie daje jeśli robie:
w/w przypadku wszystko jest po prostu przesunięte o spacje ![]() Ten post edytował b_chmura 21.10.2007, 16:19:38 |
|
|
![]() ![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 10 Dołączył: 13.02.2007 Skąd: Rybnik Ostrzeżenie: (0%) ![]() ![]() |
Skoro jesteśmy w takim fajnym temcie, to może ja przedstawię moją klasę do obslugi drzewek katalogów + cachuje do pliku zserializowaną tablicę, do użycia przy __autoload().
-------------------- Nawet, jeżeli nie jesteś zainteresowany usługami IT ani outsourcingiem, a Twoją pasją jest programowanie - zobacz naszą stronę. Piszemy dużo fajnych use-caseów, jak podchodzimy do tematu programowania dla naszych klientów. A tak na co dzień tworzymy budujemy mvp oraz tworzymy platformę b2b.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
@b_chmura
Wg mnie Twoja funkcja posiada jedną znaczącą wadę: nie zwraca danych, a je od razu wypisuje na ekran. Funkcja ta powinna raczej zwrócić tablicę zawierającą wszystkie elementy z danego katalogu; każdy katalog powinien posiadać tablicę plików w nim się znajdujących. Ponadto dobrze by było najpierw zapisywać w tablicy katalogi (posortowane), a po nich pliki (również posortowane), a nie wszystko na raz. @matix Z wcięciami to ładnie pojechałeś ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%) ![]() ![]() |
@b_chmura Wg mnie Twoja funkcja posiada jedną znaczącą wadę: nie zwraca danych, a je od razu wypisuje na ekran. Funkcja ta powinna raczej zwrócić tablicę zawierającą wszystkie elementy z danego katalogu; każdy katalog powinien posiadać tablicę plików w nim się znajdujących. Ponadto dobrze by było najpierw zapisywać w tablicy katalogi (posortowane), a po nich pliki (również posortowane), a nie wszystko na raz. czasem samo scandir() nie działa w ten sposób? w zamiarze miałem wyświetlić wszystko, jednak mógłbyś przybliżyć mi swój pomysł? @matix - ja i klasy... nie rozumiem tego:D |
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%) ![]() ![]() |
Cytat No właśnie sęk w tym, że nie. Wyświetla wszystko za jednym zamachem (i pliki i katalogi). Już jest:
$chdir jest na potrzeby własne Mam do was małą prośbę, nie potrafię sobie poradzić z unikalnym ID. Na razie robię to w dość nie przyzwoity sposób a zależałoby mi by wyglądało to mniej więcej w ten sposób: pierwsze katalogi są numerowane od 1 wzwyż podrzędne odziedziczają numer po nadrzędnym katalogu + są także numerowane od jeden wzwyż i tak aż do ostatniego katalogu. Byłby ktoś wstanie wskazać mi jak to zrobić? ja naprawdę próbowałem już wszystkiego (dwie godziny nie moje) Przykład: Kod - katalog 1 - katalog 2 ---- katalog 2.1 ---- katalog 2.2 ---- katalog 2.3 -------- katalog 2.3.1 itd Dotychczasowy kod:
i na sam koniec mi sie przypomniało, nie mogę sobie również poradzić z polskimi znakami w url'u (pokazują mi sie znaki zapytania) próbowałem użyć urlencode ale kod sie dziwnie zachowuje i tak jakby nie widział tej funkcji (nie reaguje na nią...) Pozdrawiam EDIT: Przykład działania: http://www.informel.pl/~bchmura/cos.php EDIT: Te cyferki to numer ID Ten post edytował b_chmura 22.10.2007, 23:41:24 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.04.2025 - 05:38 |