Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Folder Tree
Forum PHP.pl > Forum > PHP
dzobert
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
mike
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
dzobert
Dzięki jednak to co chciałem zrobić było bez sensu.

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