Hallo liebes Forum,
nach langer Zeit ich mal wieder. Ich tüftle nun seit zwei Tagen und raufe mir die Haare. Ich möchte eine Verzeichnisstruktur auslesen und diese dann in ein mehrdimensionales assoziatives Array schreiben, um sie als fertig strukturierte Liste per AJAX an ein Script zu übergeben (war so meine Idee). Nun merke ich aber, dass Rekursionen irgendwie nicht meins sind, da setzt mein Verstand aus. Ich zeig euch mal, was ich bis jetzt zusammengeferkelt hab:
$z=0; // Testzähler, um zu überprüfen, ob und in welcher Ebene die Funktion aufgerufen wird
function readdirs($pfad, $mainArray = '', $z){
// Verzeichnis scannen und in Array speichern
$verzArray=scandir($pfad);
echo $z;
foreach($verzArray as $ordner) {
if(!preg_match('/^(.|..)$/i', $ordner)) {
// wenn Ordnerelement ein Ordner ist, neues Unterarray erstellen und die Funktion damit neu aufrufen
if(is_dir($pfad.$ordner)) {
$mainArray[$ordner] = array();
readdirs($pfad.$ordner.'/', $mainArray[$ordner],$z+1);
}
// sonst die Datei im Array numerisch ablegen
else {
$mainArray[] = $ordner;
}
}
}
return($mainArray);
}
$ausgabe = readdirs('../../OptikBilder/Galerie/');
echo '<pre>'; print_r($ausgabe); echo '</pre>';
Die erste Array-Ebene wird erstellt, danach ist Schluss. Die Funtkion wird aber artig ausgeführt, das sieht man am Testzähler $z. Nur das Array wird nicht entsprechend erweitert. Mir fällt grad nichts mehr ein. Ich hab aber das Gefühl, dass nicht mehr viel fehlt. Könnt ihr mir auf die Sprünge helfen?
Besten Dank schonmal