Function scan_directory_recursively
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
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
<?php
// ------------ lixlpixel recursive PHP functions -------------
// scan_directory_recursively( directory to scan, filter )
// expects path to directory and optional an extension to filter
// ------------------------------------------------------------
function scan_directory_recursively($directory, $filter=FALSE)
{
if(substr($directory,-1) == '/')
{
$directory = substr($directory,0,-1);
}
if(!file_exists($directory) || !is_dir($directory))
{
return FALSE;
}elseif(is_readable($directory))
{
$directory_list = opendir($directory);
while($file = readdir($directory_list))
{
if($file != '.' && $file != '..')
{
$path = $directory.'/'.$file;
if(is_readable($path))
{
$subdirectories = explode('/',$path);
if(is_dir($path))
{
$directory_tree[] = array(
'path' => $path,
'name' => end($subdirectories),
'kind' => 'directory',
'content' => scan_directory_recursively($path, $filter));
}elseif(is_file($path))
{
$extension = end(explode('.',end($subdirectories)));
if($filter === FALSE || $filter == $extension)
{
$directory_tree[] = array(
'path' => $path,
'name' => end($subdirectories),
'extension' => $extension,
'size' => filesize($path),
'kind' => 'file');
}
}
}
}
}
closedir($directory_list);
return $directory_tree;
}else{
return FALSE;
}
}
// ------------------------------------------------------------
// to use this function to get all files and directories in an array, write:
// $filestructure = scan_directory_recursively('path/to/directory');
// to use this function to scan a directory and filter the results, write:
// $fileselection = scan_directory_recursively('directory', 'extension');
?>
// ------------ lixlpixel recursive PHP functions -------------
// scan_directory_recursively( directory to scan, filter )
// expects path to directory and optional an extension to filter
// ------------------------------------------------------------
function scan_directory_recursively($directory, $filter=FALSE)
{
if(substr($directory,-1) == '/')
{
$directory = substr($directory,0,-1);
}
if(!file_exists($directory) || !is_dir($directory))
{
return FALSE;
}elseif(is_readable($directory))
{
$directory_list = opendir($directory);
while($file = readdir($directory_list))
{
if($file != '.' && $file != '..')
{
$path = $directory.'/'.$file;
if(is_readable($path))
{
$subdirectories = explode('/',$path);
if(is_dir($path))
{
$directory_tree[] = array(
'path' => $path,
'name' => end($subdirectories),
'kind' => 'directory',
'content' => scan_directory_recursively($path, $filter));
}elseif(is_file($path))
{
$extension = end(explode('.',end($subdirectories)));
if($filter === FALSE || $filter == $extension)
{
$directory_tree[] = array(
'path' => $path,
'name' => end($subdirectories),
'extension' => $extension,
'size' => filesize($path),
'kind' => 'file');
}
}
}
}
}
closedir($directory_list);
return $directory_tree;
}else{
return FALSE;
}
}
// ------------------------------------------------------------
// to use this function to get all files and directories in an array, write:
// $filestructure = scan_directory_recursively('path/to/directory');
// to use this function to scan a directory and filter the results, write:
// $fileselection = scan_directory_recursively('directory', 'extension');
?>
Hoe krijg ik nu alle gegevens ge-echo-ed?
Ik dacht heel simpel:
echo scan_directory_recursively('c:/webserver/www');
of
echo scan_directory_recursively('c:/webserver/www', 'php');
Maar krijg als resultaat: Array
Iemand die me kan helpen?
Gr,
Matthijs
of doe het zo
maar hoe kan ik nu puur de inhoud van iedere variabele tonen zonder
Array ( [0] => Array ( [path] => C:/webserver/www
met een for lus ofzo?
Ik heb geen idee hoe die array er uit komt te zien, maar als er strings gebruikt worden als index dan..
Eigenlijk zou je dit:
Code (php)
Zo moeten doen:
Code (php)
Lees de manual van print_r() er maar eens op na.
@matthijs,
dat kan met een foreach lus.
Code (php)
Edit: Kk.. fixed.. maar dit is zonder enige opmaak.
Gewijzigd op 01/01/1970 01:00:00 door Gerben Jacobs
Ik heb er
Code (php)
van gemaakt en dat ziet er wel beter uit.
@Boaz en Gerben
Ik krijg het gewoon niet voor elkaar.
Ik heb ze allebei uitgevoerd:
Code (php)
resultaat: ArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArray
en
resultaat: 0 = > Array1 = > Array2 = > Array3 = > Array4 = > Array5 = > Array6 = > Array7 = > Array8 = > Array9 = > Array10
Gegegevens uit een database halen lukt me wel met:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT * FROM personeel");
while($row = mysql_fetch_array($result))
{
echo $row['voornaam'] . " " . $row['achternaam'];
echo "<br />";
}
?>
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT * FROM personeel");
while($row = mysql_fetch_array($result))
{
echo $row['voornaam'] . " " . $row['achternaam'];
echo "<br />";
}
?>
Nog een idee?
Gewijzigd op 01/01/1970 01:00:00 door matthijs
Zie mijn vorige post.
Ik krijg nu wel alle bestandsnamen te zien, maar ik vraag me af of het wel de bedoeling is om een extra functie te maken om deze functie uit te lezen.
Anyway, mijn dank is 1m85!
Vandaar dat ik ook zei dat het een nasty functie is, want hij geeft gewoon een über geneste array terug (uitgaand van een redelijke grote directory die je opgeeft), meer niet..