Je zou eens naar de [php]directoryIterator[/php] kunnen kijken...
Link gekopieerd
Ik heb hier een voorbeeld, deze haalt alle mappen op, en plaatst alle mappen en submappen + bestanden in een array:
<?php
$savedPaths = array();
function loadFiles($map){
$arr = array();
$iterator = new RecursiveDirectoryIterator($map);
foreach (new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::CHILD_FIRST) as $bestand){
if($bestand->isFile() || $bestand->isDir())$arr[]=$bestand->getFileName();
}
return $arr;
}
function loadFolder($map){
$arr = array();
$savedPaths = array();
$iterator = new RecursiveDirectoryIterator($map);
$b=0;
foreach (new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::CHILD_FIRST) as $bestand){
if(!in_array($bestand->getPath(),$savedPaths)){
$path = explode('\\',$bestand->getPath());
$arr[] = $path;
$savedPaths[] = $bestand->getPath();
$arr[$b]['files'] = loadFiles($savedPaths[$b]);
$b++;
}
}
/*echo '<pre>';
print_r($savedPaths);
echo '</pre>';*/
return $arr;
}
$mappen = loadFolder('.');
echo '<pre>';
print_r($mappen);
echo '</pre>';
?>
Voorbeeld van een output:
Array
(
[0] => Array
(
[0] => .
[files] => Array
(
[0] => directory.php
[1] => map1
[2] => bestand.txt
[3] => bestand2.txt
[4] => subsubmap1
[5] => submap1
[6] => submap2
[7] => map2
)
)
[1] => Array
(
[0] => .
[1] => map2
[2] => submap1
[files] => Array
(
[0] => bestand.txt
[1] => bestand2.txt
[2] => subsubmap1
)
)
[2] => Array
(
[0] => .
[1] => map2
[2] => submap1
[3] => subsubmap1
[files] => Array
(
[0] => bestand2.txt
)
)
[3] => Array
(
[0] => .
[1] => map2
[files] => Array
(
[0] => bestand.txt
[1] => bestand2.txt
[2] => subsubmap1
[3] => submap1
[4] => submap2
)
)
)
Link gekopieerd
Wow dat is een snelle reactie!
Maar ik zie dat je PHP 5.1 nodig hebt. Ik draai nog op PHP 4.4.8.
Link gekopieerd
Tijd om te upgraden?
RecursiveDirectoryIterator is een verdomt handige functie :).
Link gekopieerd
Ik ben in dit geval afhankelijk van mijn gesponserde hosting(voor een sportvereniging) dus dat is op dit moment geen optie.
Maar als ik zo door de functie heen kijk ziet het er idd verdraait handig uit.
Waar zou ik gebruik van kunnen maken in mijn geval?
Link gekopieerd
Dan zou met opendir enz alle mappen kunnen doorzoeken en in een array kunnen gooien, maar dat is wel lastig om dat recursief te krijgen.
Er zal ongetwijfeld op internet ook wel een recursief script te vinden zijn die met opendir werkt.
Link gekopieerd
Link gekopieerd
Bedankt! Ik ga er mee aan de slag en als ik nog vragen heb gooi ik ze hier weer naar binnen.
Link gekopieerd