View Single Post
Old 10-30-2008, 06:04 PM   #1 (permalink)
ReSpawN
The Frequenter
 
ReSpawN's Avatar
 
Join Date: Nov 2007
Location: Netherlands
Posts: 460
Thanks: 49
ReSpawN is on a distinguished road
Default Browser-based FTP browser

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
__________________
"Life is a bitch, take that bitch on a ride"
Send a message via MSN to ReSpawN
ReSpawN is offline  
Reply With Quote