Ik wil een open directory uitlezen, maar die directory staat niet op de server waar het PHP-bestand wordt uitgevoerd. Ik heb een class gemaakt, waarvan één methode zorgt voor het uitlezen van die map. Omdat ook subdirs uitgelezen moeten worden, is die methode recursief gemaakt.
De code:
Wat er fout gaat: hij leest de submappen niet uit. De bestanden in de root (= $directory) staan, worden wel uitgelezen, maar de bestanden in de submappen niet.
De inhoud van $directory.$content[$i][3] heb ik bekeken, die klopt gewoon. De print_r() die nu een comment is, geeft ook de juiste mappen + bestanden aan.
Voor de zekerheid ook nog even de mapstructuur:
De code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| function readDirByRegex($directory, $sub_dirs = true) { preg_match_all("#[img]\"(.*?)\"[/img] <a href=\"(.*?)\">(.*?)</a>#im", file_get_contents($directory), $content, PREG_SET_ORDER); // print_r($content); for ($i = 2; $i < count($content); $i++) { if ($sub_dirs == true && !strchr($content[$i][3], '.')) { $this->readDirByRegex($directory.$content[$i][3]); } else { $list_songs[][$directory] = $content[$i][3]; } } return $list_songs; } |
Wat er fout gaat: hij leest de submappen niet uit. De bestanden in de root (= $directory) staan, worden wel uitgelezen, maar de bestanden in de submappen niet.
De inhoud van $directory.$content[$i][3] heb ik bekeken, die klopt gewoon. De print_r() die nu een comment is, geeft ook de juiste mappen + bestanden aan.
Voor de zekerheid ook nog even de mapstructuur:
code:
1
2
3
4
5
6
7
| /opendir - dir - dirrr - blaat.txt - text.txt - test.txt - boe.txt |
[ Voor 6% gewijzigd door Scott op 18-08-2005 12:23 ]