vraagje over opendir
http://www.phphulp.nl/php/scripts/2/638/
het werkt perfect, maar is het soms niet
mogelijk om met "opendir" een submap
van je root te benaderen als ik hem op
mijn server in de root map benader dan
laat hij perfect alle daarop aanwezige
mappen zien, maar als ik hem dan instel
op een map uit de root dan geeft hij niks
weer in de dropdown.
groeten
J.S. Prins
Ik was bezig met een scriptje van deze site het werkt perfect, maar is het soms niet
mogelijk om met "opendir" een submap
van je root te benaderen als ik hem op
mijn server in de root map benader dan
laat hij perfect alle daarop aanwezige
mappen zien, maar als ik hem dan instel
op een map uit de root dan geeft hij niks
weer in de dropdown.
groeten
J.S. Prins
Ik geef je twee systemen; ik vermoed dat je de tweede functie het meest interessant vindt.
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
$rootDir = 'files/'; // Zelf aanpassen !!!!
$files = lees_folder_hierarchisch($rootDir);
echo '<h2>Open dir met subfolders, hiërarchisch</h2><pre>'. print_r($files, 1) .'</pre>';
$files2 = array();
lees_folder_plat($rootDir, $files2);
echo '<h2>Open dir met subfolders, in een platte structuur</h2><pre>'. print_r($files2, 1) .'</pre>';
function lees_folder_hierarchisch($dir)
{
$result = array();
$result['dir'] = $dir;
$result['files'] = array();
$result['subfolders'] = array();
if ( is_dir($dir) )
{
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
if ($file == '.' || $file == '..')
continue;
$pathinfo = pathinfo($file);
$nieuweDir = slash_op_einde($dir) . $file;
if ( is_dir($nieuweDir) )
$result['subfolders'][] = lees_folder_hierarchisch( $nieuweDir );
else
$result['files'][] = $pathinfo;
}
closedir($dh);
}
}
return $result;
}
function lees_folder_plat($dir, &$files, $root='')
{
if (!is_array($files))
$files = array();
if ( is_dir($dir) )
{
if ($dh = opendir($dir))
{
$root = slash_op_einde($dir);
while (($file = readdir($dh)) !== false)
{
if ($file == '.' || $file == '..')
continue;
$pathinfo = pathinfo($file);
$nieuweDir = slash_op_einde($dir) . $file;
if ( is_dir($nieuweDir) )
lees_folder_plat($nieuweDir, $files, $root);
else
{
$i = count($files);
$files[$i] = $pathinfo;
$files[$i]['dirname'] = slash_op_einde($root . $dir); // of eventueel laat je slash_op_einde() weg.
}
}
closedir($dh);
}
}
return true;
}
function slash_op_einde($dir)
{
if ( substr($dir, -1, 1) != '/')
$dir = $dir .'/';
return $dir;
}
?>
$rootDir = 'files/'; // Zelf aanpassen !!!!
$files = lees_folder_hierarchisch($rootDir);
echo '<h2>Open dir met subfolders, hiërarchisch</h2><pre>'. print_r($files, 1) .'</pre>';
$files2 = array();
lees_folder_plat($rootDir, $files2);
echo '<h2>Open dir met subfolders, in een platte structuur</h2><pre>'. print_r($files2, 1) .'</pre>';
function lees_folder_hierarchisch($dir)
{
$result = array();
$result['dir'] = $dir;
$result['files'] = array();
$result['subfolders'] = array();
if ( is_dir($dir) )
{
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
if ($file == '.' || $file == '..')
continue;
$pathinfo = pathinfo($file);
$nieuweDir = slash_op_einde($dir) . $file;
if ( is_dir($nieuweDir) )
$result['subfolders'][] = lees_folder_hierarchisch( $nieuweDir );
else
$result['files'][] = $pathinfo;
}
closedir($dh);
}
}
return $result;
}
function lees_folder_plat($dir, &$files, $root='')
{
if (!is_array($files))
$files = array();
if ( is_dir($dir) )
{
if ($dh = opendir($dir))
{
$root = slash_op_einde($dir);
while (($file = readdir($dh)) !== false)
{
if ($file == '.' || $file == '..')
continue;
$pathinfo = pathinfo($file);
$nieuweDir = slash_op_einde($dir) . $file;
if ( is_dir($nieuweDir) )
lees_folder_plat($nieuweDir, $files, $root);
else
{
$i = count($files);
$files[$i] = $pathinfo;
$files[$i]['dirname'] = slash_op_einde($root . $dir); // of eventueel laat je slash_op_einde() weg.
}
}
closedir($dh);
}
}
return true;
}
function slash_op_einde($dir)
{
if ( substr($dir, -1, 1) != '/')
$dir = $dir .'/';
return $dir;
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
Zal het even bekijken iig bedankt eerst :)