Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Folder Tree, Dowolna ilość zagłębień
dzobert
post 13.08.2007, 12:50:00
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 1
Dołączył: 30.06.2006
Skąd: okolice Warszawy

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


Witam. Mam problem z mapowaniem folderu. Chce przekształcić strukturę folderu w tablicę. Moim problemem jest obsłużenie dowolnej ilości zagłębień. Nie wiem w ogóle jak się do tego zabrać. Proszę o pomoc. A poniżej to co mi się udało wymyślić.


  1. <?php
  2. class MapFolder {
  3.  
  4. public
  5. $sDir = '',
  6. $aMap = array();
  7.  
  8. public function __construct( $sDir ) {
  9. $this->sDir = $sDir;
  10. }
  11.  
  12. public function Map() {
  13. $this->aMap = $this->GetChild( $this->sDir );
  14. foreach( $this->aMap as $mElement => $mValue ) {
  15. if( is_array( $mValue ) && empty( $mValue ) ) {
  16. $this->aMap[$mElement] = $this->GetChild( './'.$mElement );
  17. }
  18. }
  19. }
  20.  
  21. public function GetMap() {
  22. return $this->aMap;
  23. }
  24.  
  25. private function GetChild( $sDir ) {
  26. $aDir = array();
  27. $oIterator = new IteratorIterator( new DirectoryIterator( $sDir ) );
  28. foreach( $oIterator as $sElement ) {
  29. if( $sElement->isDir() && !$sElement->isDot() ) {
  30. $aDir[$sElement->getFileName()] = array();
  31. }
  32. else {
  33. $aDir[] = $sElement->getFileName();
  34. }
  35. }
  36. return $aDir;
  37. }
  38.  
  39. }
  40. ?>


Wszelkie uwagi i sugestie mile widziane.

Pozdrawiam
Go to the top of the page
+Quote Post
mike
post 13.08.2007, 12:56:10
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


A czemu wynajdujesz koło od nowa?
RecursiveDirectoryIterator
A u mnie poczytasz o szczegółach: Iteratory w PHP, czyli stare nowe SPL :: Lista plików w folderze
Go to the top of the page
+Quote Post
dzobert
post 13.08.2007, 13:34:20
Post #3





Grupa: Zarejestrowani
Postów: 46
Pomógł: 1
Dołączył: 30.06.2006
Skąd: okolice Warszawy

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


Dzięki jednak to co chciałem zrobić było bez sensu.

P.S. Jak sprawić aby Iterator zwracał zagnieżdżoną tablicę ?
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: 7.07.2025 - 12:13