opendir voor folder en 1e subfolder
Ik heb een vraag. Met een php script wil ik de een tree-view maken van een folder op mijn server. de bedoeling is dat als ik in de folder waar ik in zoek (folder:base) alle folders(folder 1) weergeef en alleen de 1e subfolders (folder 1a-z) van folder 1 laat zien. Dus bijv:
Folder base= root
Folder 1 bevat:
-subfolder 1a
-subfolder 1b
-subfolder 1c
-subfolder 1d
Folder 2 bevat:
-subfolder 2a
-subfolder 2b
-subfolder 2c
enz.
Ik dacht dit te kunnen doen met onderstaand script, maar er gaat iets fout:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<ul>
<?php
$dir = "files/"; // mijn basefolder
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
$files[] = trim($file);
}
sort($files);
foreach($files as $file){
if ($file != "." && $file != ".." && is_dir($dir.$file)){
// laat de eerste laag zien, dus folder 1, folder 2 enz
echo '<li>'.$file;
if ($dh_sub = opendir($dir.$file)) {
while (($file_sub = readdir($dh_sub)) !== false) {
$files_sub[] = trim($file_sub);
}
sort($files_sub);
echo '<ul>';
foreach($files_sub as $file_sub){
if ($file_sub != "." && $file_sub != ".." && $file_sub != "" && is_dir($dir.$file.'/'.$file_sub)){
// laat de subdirectories van folder 1, folder2 zien
echo '<li>'.$file_sub;
echo '</li>';
}
}
echo '</ul>';
}
echo '</li>';
}
}
}
}
?>
</ul>
<?php
$dir = "files/"; // mijn basefolder
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
$files[] = trim($file);
}
sort($files);
foreach($files as $file){
if ($file != "." && $file != ".." && is_dir($dir.$file)){
// laat de eerste laag zien, dus folder 1, folder 2 enz
echo '<li>'.$file;
if ($dh_sub = opendir($dir.$file)) {
while (($file_sub = readdir($dh_sub)) !== false) {
$files_sub[] = trim($file_sub);
}
sort($files_sub);
echo '<ul>';
foreach($files_sub as $file_sub){
if ($file_sub != "." && $file_sub != ".." && $file_sub != "" && is_dir($dir.$file.'/'.$file_sub)){
// laat de subdirectories van folder 1, folder2 zien
echo '<li>'.$file_sub;
echo '</li>';
}
}
echo '</ul>';
}
echo '</li>';
}
}
}
}
?>
</ul>
Wat hij nu weergeeft is dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<ul>
<li>Folder 1
<li>subfolder 1a</li>
<li>subfolder 1b</li>
<li>subfolder 1c</li>
<li>subfolder 1d</li>
</li>
<li>Folder 2
<ul>
<li>subfolder 1a</li>
<li>subfolder 1b</li>
<li>subfolder 1c</li>
<li>subfolder 1d</li>
<li>subfolder 2a</li>
<li>subfolder 2b</li>
<li>subfolder 2c</li>
</ul>
</li>
</ul>
<li>Folder 1
<li>subfolder 1a</li>
<li>subfolder 1b</li>
<li>subfolder 1c</li>
<li>subfolder 1d</li>
</li>
<li>Folder 2
<ul>
<li>subfolder 1a</li>
<li>subfolder 1b</li>
<li>subfolder 1c</li>
<li>subfolder 1d</li>
<li>subfolder 2a</li>
<li>subfolder 2b</li>
<li>subfolder 2c</li>
</ul>
</li>
</ul>
Alleen wil ik niet dat hij de subfolders uit folder 1 bij de subfolders van folder 2 laat zien.
Wat doe ik fout.
tnx
Wim
Gewijzigd op 01/01/1970 01:00:00 door Wim Selles
hier misschien wat aan?
Heb je Ik denk het wel, maar als ik het goed begrijp geeft hij nu alle mappen terug die in bijvoorbeeld folder 1 staan, plus alle submappen en eventueel hun submappen?
Zo ja, als ik meer dan 100 mappen en bestanden in mijn base heb staan, krijg ik dan geen timeout omdat het zoeken er lang kan duren?
Probeer het, zou ik zeggen.
maar ik wil het in een soort online ajax explorer verwerken die ik voor mijn eigen site wil maken. En dan wil ik er straks niet achter komen dat ik een timeout krijg.
Ik ga er wel mee stoeien, tnx, maar weet jij misschien ook waarom mijn script geen goede waarden teruggeeft?
Ik zou namelijk graag willen weten wat ik fout doe