Hey all!
Currently I've been working, just for the fun of it, on a FTP browser. Nothing fancy or anything, but I just want to get some help and feedback if possible.
Imagine a index structure like so;
Code:
download
public
concepts
ftpconcept.doc
private
ftp
dumpfile.jpg
storage
sandbox
playground
talkphp
boards
advanced_programming
topic
browser-based_ftp_browser
topic.html
index.html
script.js
style.css
image.jpg
As you can see, there are 3 (three) maps named
download, sandbox and
talkphp. Some of them or in this case, all of them contain a subfolder and at some they contain either a file, directory or even worse, both.
Next to that, the root ( . )
( « no, that's not a boob) contains files as well. Naturally, the directories are ALSO located in the root because we start scanning from there on out.
Now, for the fun part. I already got this;
PHP Code:
$directories = array();
$files = array();
$dirHandle = opendir('.'); // root
$disgardType = array(".", "..", "index.php", ".htaccess");
while (false !== ($targetFile = readdir($dirHandle))) {
if (!in_array($targetFile2, $disgardType)) {
if (is_file($targetFile)) {
//array_push($files, $targetFile);
}
if (is_dir($targetFile)) {
//array_push($directories, $targetFile);
if (is_dir($targetFile)) {
$dirHandle2 = opendir($targetFile);
while (false !== ($targetFile2 = readdir($dirHandle2))) {
if (!in_array($targetFile2, $disgardType)) {
//array_push($directories, $targetFile2);
}
}
}
}
}
}
closedir($dirHandle);
But this all made me wonder quite a bit. I've got, as it stands right now, 4 subdirectories based in
talkphp. Even the worst paranoid mapping structure specialist should be able to use this so there should be NO limit to what the level of depth should be.
Now, I can scan the first sublevel of directires which would give me (for example) under
download:
public, private, ftp and
storage. But what if I scanned talkPHP? I should make ANOTHER level of subdirectory checks in a while loop, INSIDE my script (again). If that's so, I can just keep going and going making the same loop over and over and over again. I think you all get where I am going with this.
Can somebody offer some insight on how to do this the GOOD way? Oh yea, as a footnote, I would like to be able to display them so that they SHOW UP as subdirectories in a print_r() function. So under download as key 0, I should get this;
Code:
Array
(
[download] => Array
(
[public] => Array
(
[0] => concepts
[1] => ftpconcept.doc
)
[0] => private
[ftp] => Array
(
[0] => dumpfile.jpg
)
[storage] => Array
(
[0] => playground
)
)
)
Thanks in advance,
ReSpawN