| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer Registriert seit: 21.12.2009
Beiträge: 415
PHP-Kenntnisse: Fortgeschritten ![]() | Ohne rekursive Funktion dürfte es kaum möglich sein, die gewünschte Struktur zu erzielen. Um das einfach prüfbar zu machen würde ich z.B. eine Methode hasChildren() empfehlen. Den RecursiveDirectoryIterator und die diversen anderen Iterator und Interfaces hast du dir bereits angesehen?
__________________ actra.development - Schwabstr. 2 - 70825 Münchingen www.actra.de/velopment/ - eMail: php.de@actra.de Zend Certified Engineer for PHP5 |
| | |
| | |
| Benutzer Registriert seit: 18.06.2009
Beiträge: 42
PHP-Kenntnisse: Fortgeschritten ![]() | Den RecursiveDirectoryIterator hab ich mir noch nicht angesehen. Generell habe ich es mit Iteratoren (noch) nicht so Ich würde trotzdem gern meine eigene Klasse schreiben/verwenden, macht es Sinn einen Iterator zu implementieren? Soll ich eine eigene Klasse schreiben, welche über diese Klasse (mit dem Verzeichnisbaum) iteriert? Ich bin irgendwie total planlos. Die hasChildren() Methode hilft mir leider auch nicht wirklich. Mein Gedanke ist folgender: Solange in den "ersten" Unterordner gehen bis es keinen mehr gibt, alle files ausgeben, eins raus, den nächsten nehmen (falls vorhanden). - Wieder solange rein bis man ganz "drinnen" ist. Nür müsste man die bereits iterierten "streichen"? Hat jemand eine Idee? Ich könnte ein zweites "Streich" Array machen, ist aber bei weitem nicht "best practice". mfg |
| | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Also irgendwie scheinst Du das Prinzip der Rekursion noch nicht ganz verstanden zu haben*). Dort wird immer eine Ebene komplett abgearbeitet und am Anfang oder Ende in die nächst tiefere gesprungen. Nach Abarbeitung erfolgt ein Rückfall in einen evtl. vorhandenen Aufrufkontext. Die Ergebnisse der Verarbeitungsschritte werden gesammelt - entweder über die jeweiligen Rückgaben oder eine referenzierte Parametervariable. *) daher auch: [MOD: verschoben] RecursiveIteratoren funktionieren etwas anders: Sie stellen erst eine (lineare, also eindimensionale) Liste aller rekursiven Einträge zusammen und iterieren dann über diese flache Hierarchie. Genauso kannst Du aber auch (nicht recursive) DirectoryIterator verwenden und echte Rekursion. Siehe auch: http://www.robo47.net/codeschnipsel/...atoren-der-SPL
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- |
| | |
| | |
| Benutzer Registriert seit: 18.06.2009
Beiträge: 42
PHP-Kenntnisse: Fortgeschritten ![]() | Ich glaub ich habe es nun! Danke für die Erklärung! Die ganze Methode sieht jetzt so aus, was meint ihr, ist das ok? (Files hab ich jetzt noch nicht implementiert, aber das ist ja nur mehr eine Zeile.) PHP-Code: Danke fürs verschieben. mfg PS: Keine Beleidungen für mein Englisch bitte :P |
| | |
| | ||
| Erfahrener Benutzer | Ach, so schlimm is das doch garnicht.. :P Zitat:
Da könntest du auch noch den ein oder anderen Blick reinwerfen: http://www.phpro.org/tutorials/Introduction-to-SPL.html
__________________ | |
| | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Nachdem ich mich gefragt und dann verstanden habe, woher $this->_subDirectories kommt, sehe ich ein Problem darin, dass Du die Methode, den Baum zu durchlaufen in den Baumknoten/im Baum implementierst. Da hier keine gescheite Möglichkeit herrscht, gleich eine Methode auf den aktuellen Knoten auszuführen, statt nur alle in einer schnöden Liste aneinanderzureihen, würde ich Dir raten a) gleich auf SPL zu setzen b) den Iterationsprozess aus dem Baum herauszunehmen und ein weiteres Objekt zu schaffen, das über den Baum arbeitet (alternativ kannst Du dann aber auch gleich über ein Live-Directory-Reading laufen)
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] Zend_Mail Attachments im ./application/data/uploads Verzeichnis auswählen | dreamcatcher | PHP Einsteiger | 1 | 13.08.2011 13:07 |
| Rekursiv Verzeichnis durchsuchen | _-Tricky-_ | PHP Tipps 2010 | 1 | 21.04.2010 10:49 |
| Problem bei kategorien rekursiv ausgeben. | litterauspirna | PHP Tipps 2008 | 13 | 08.11.2008 19:25 |
| Menü punkte Rekursiv ausgeben??? | shocky | PHP Tipps 2006 | 3 | 02.07.2006 15:56 |
| Dateien im Verzeichnis zählen und ausgeben.. | PHP Tipps 2005 | 2 | 01.06.2005 22:14 | |
| Verzeichnis -> read() sortiert ausgeben | Unbekanntes_Pferd | PHP Tipps 2005 | 9 | 30.01.2005 20:39 |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| php recursiveiterator sortieren, ordner dateien in liste php iterieren, php rekursion, php rekursiv verzeichnisse anzeigen, php recursive recursiveiterator sortieren, php ordner rekursiv durchsuchen, php objekt rekursiv iterieren, php objekt ausgeben, php rekursiven array ausgeben, pfad ausgabe array rekursiv, rekursion flach |