List as array and modify the output

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
User avatar
Peuplarchie
Forum Contributor
Posts: 148
Joined: Sat Feb 04, 2006 10:49 pm

List as array and modify the output

Post by Peuplarchie »

Good day to you all,
here I have a recursive directory lister that puts everything into an array.

Here is the code:

Code: Select all

 
 
 
<?
function getDirectory($path = '.', $ignore = '') {
    $dirTree = array ();
    $dirTreeTemp = array ();
    $ignore[] = '.';
    $ignore[] = '..';
 
    $dh = @opendir($path);
 
    while (false !== ($file = readdir($dh))) {
 
        if (!in_array($file, $ignore)) {
            if (!is_dir("$path/$file")) {
                
                $dirTree["$path"][] = $file;
                
            } else {
                
                $dirTreeTemp = getDirectory("$path/$file", $ignore);
                if (is_array($dirTreeTemp))$dirTree = array_merge($dirTree, $dirTreeTemp);
            }
        }
    }
    closedir($dh);
    
    return $dirTree;
}
 
$ignore = array('.htaccess', 'error_log', 'cgi-bin', 'php.ini', '.ftpquota');
 
$dirTree = getDirectory('Photos', $ignore);
?>
<pre>
    <?
    print_r($dirTree);
    ?>
</pre>
 
 

My question is how can I keep the same array and without looping again through the directories again list only the folder ?

If i can, how can I also list a text only the folder that does have folder in them and as a link the one that as files.

So when a link is press I can list the array under that folder

Thanks!
Post Reply