Hallo
Ik ben bezig met mijn fotobeheer
daarin heb ik een deel dat een map uitleest en de submappen als option in mijn form weergeeft.
De onderstaande code heb ik maar deze doet het niet wat doe ik fout ?
Ik krijg als uitvoer 2 keer een lege option
Ik heb voor het testen een submap met daarin nog een map
<?php

$dir = opendir($hoofddir);

while($sub_dir = readdir($dir)) {

if($sub_dir != ".." && $sub_dir != "thumbs" && !is_file($sub_dir) && is_dir($hoofddir.$sub_dir))

$files[]=$sub_dir;}

$dir = opendir($hoofddir.$sub_dir);

while($sub_dir2 = readdir($dir)) {

if($sub_dir2 != ".." && $sub_dir2 != "thumbs" && !is_file($sub_dir2) && is_dir($hoofddir.$subdir.$sub_dir2))

$files[]=$sub_dir.$subdir2;}



{ natcasesort($files);

foreach ($files as $sub_dir)



echo "<option value='". $sub_dir ."'>". $sub_dir ."</option>";

}

closedir($dir);



?>

mvg Jonas
Je bent in beginsel al fout bezig. Kijk eens naar de functie readdir op php.net. Dan zie je dat je op die manier niet door de mappen heen moet lopen.

Gebruik
while( ($file = readdir($dh) !== false)

Ook zul je door de subdir heen moeten lopen, je zult dus de readdir in de readdir moeten nesten.
Hallo is dit soms hoe het juist moet ?

<?php
// while($sub_dir = readdir($dir)) {
$dir = opendir($hoofddir);

while (false !== ($sub_dir = readdir($dir))) {


if($sub_dir != ".." && $sub_dir != "thumbs" && !is_file($sub_dir) && is_dir($hoofddir.$sub_dir)){
$files[]=$sub_dir;
}

{ natcasesort($files);
foreach ($files as $sub_dir)

$dir2 = opendir($hoofddir.$sub_dir);
while (false !== ($sub_dir2 = readdir($dir2))) {
if($sub_dir2 != ".." && $sub_dir2 != "." && $sub_dir2 != "thumbs" && !is_file($sub_dir2) && is_dir($hoofddir.$sub_dir.'/'.$sub_dir2)){
$files[]=$sub_dir.'/'.$sub_dir2 ;
}

}
}
}



{ natcasesort($files);
foreach ($files as $sub_dir)

echo "<option value='". $sub_dir ."'>". $sub_dir ."</option>";
}
closedir($dir);
closedir($dir2);
?>

Dat schijnt te werken

Reageren