Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> LISTA - struktura katalogu..., jak zrobić ?
slash^
post 30.01.2005, 17:19:55
Post #1





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

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


Mam problem
Otóż muszę wykonać w php strukture katalogów, jakie się znajdują w 1 określonym folderze, Problem polega na tym, aby skrypt uwzględniał pod-katalogi, czego nie udaje mi sie zrobic smile.gif
Kazdy katalog i pod-katalog moze miec (choc nie zawsze ma) bardzo dużą ilość katalogów i podkatalogów.
Mógłby ktoś podać jak się do tego zabrać? Chodzi mi o spis w stylu:

Kod
kat 1  
- kat 2
- kat 3
  - kat 4
  - kat 5
- kat 6
kat 7
- kat 8
  - kat 9
     - kat 10
kat 11


itd...
help ;p


--------------------
d(^^)b
Go to the top of the page
+Quote Post
Ociu
post 30.01.2005, 18:04:08
Post #2





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




pobaw się opendir(); i readdir();

pozdrawiam
Go to the top of the page
+Quote Post
slash^
post 30.01.2005, 18:18:36
Post #3





Grupa: Zarejestrowani
Postów: 278
Pomógł: 36
Dołączył: 9.04.2003
Skąd: Płock

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


Wiem do czego służa podane komendy, ale nie wiem jak zrobić, aby "wejsc" do kazdego katalog odczytac podkatalogi (i ew. do nich tez wchodzic) a pozniej "wyjsc" i dac nastepne.... sad.gif


--------------------
d(^^)b
Go to the top of the page
+Quote Post
Ociu
post 30.01.2005, 18:30:58
Post #4





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Ja jak zwykle robie za pomocą linku...
sprawdzasz czy np. $_GET['cat'] jest puste, jeśli tak wtedy dajesz opendir('.'); jeśli jest coś tam to dajesz:
opendir($_GET['cat']); dajesz tylko pętle while aby wyświetlić co to tam ma i tyle.

Jeśli dobrze zrozumiałem to by o to chodziło.
Go to the top of the page
+Quote Post
aleksander
post 30.01.2005, 18:41:05
Post #5





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

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


kiedyś napisałem coś takiego:
  1. <?php
  2. $pliki = array();
  3. $foldery = array();
  4. function read_dir( $adir )
  5. {
  6. global $pliki, $foldery;
  7. $dir = opendir( $adir );
  8. while( $a = readdir( $dir ) )
  9. {
  10. if( is_dir( $a ) AND $a != '.' AND $a != '..' )
  11. {
  12. $foldery[] = $adir . $a;
  13. read_dir( $adir . $a . '/');
  14. }
  15. if( is_file( $a ) )
  16. {
  17. $pliki[] = $adir . $a;
  18. }
  19. }
  20. closedir( $dir );
  21. }
  22. read_dir( './' );
  23. echo '<pre>';
  24. print_r( $pliki );
  25. print_r( $foldery );
  26. echo '</pre>';
  27.  
  28. ?>
pozdrawiam
Go to the top of the page
+Quote Post
nibytak
post 30.01.2005, 21:31:03
Post #6





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 24.01.2005

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


mnie udalo sie sklecic cos takiego:

  1. <?php
  2.  
  3. // to ma tylko zwrocic tablice z podkatalogami w aktualnym katalogu
  4. function childirs() {
  5.  
  6. $dir = opendir( './' );
  7. $foldery = NULL;
  8.  
  9. while( ($a = readdir( $dir )) !== false ) {
  10.  
  11. if( is_dir( $a ) AND $a != '.' AND $a != '..' ) {
  12. $foldery[] = $a;
  13. }
  14.  
  15. }
  16.  
  17. closedir( $dir );
  18. return $foldery;
  19.  
  20. }
  21.  
  22.  
  23. // to leci po calosci
  24. function dir_tree( $dirs , $poziom) {
  25.  
  26. if ($poziom != 0) {
  27.  
  28. if ($dirs !== null ) {
  29.  
  30. foreach($dirs as $parent) {
  31.  
  32. chdir($parent);
  33. $diry[$parent] = dir_tree(childirs(), $poziom-1);
  34. chdir('..');
  35.  
  36. }
  37.  
  38. } // null
  39.  
  40. } // poziom
  41.  
  42. return $diry;
  43. }
  44.  
  45. // tak wywolywac, 100 - maksymalny poziom
  46. $foldery = dir_tree( childirs(), 100 );
  47.  
  48. echo '<pre>';
  49. print_r( $foldery );
  50. echo '</pre>';
  51.  
  52. ?>


czyli wczytuje w array drzewko od pwd w dol. kontrole glebokosci katalogu wprowadzilem z przezornosci, mozna to smialo wywalic. php dopiero zaczynam, podejrzewam wiec ze cos tu jest niehalo, choc dziala. jestem otwarty na wszelka krytyke smile.gif

+++


--------------------
+++ DISCONNECTED
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 06:54