Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: LISTA - struktura katalogu...
Forum PHP.pl > Forum > PHP
slash^
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
Ociu
pobaw się opendir(); i readdir();

pozdrawiam
slash^
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
Ociu
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.
aleksander
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
nibytak
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

+++
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.