note 61285 added to ref.dir
| From: | msh at onliners dot dk | Date: | Mon, 30 Jan 2006 11:49:01 +0000 |
| Subject: | note 61285 added to ref.dir | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-102722@lists.php.net to get a copy of this message | ||
I would like to present these two simple functions for generating a complete directory listing - as
I feel the other examples are to restrictive in terms of usage.
function dirTree($dir) {
$d = dir($dir);
while (false !== ($entry = $d->read())) {
if($entry != '.' && $entry != '..' && is_dir($dir.$entry))
$arDir[$entry] = dirTree($dir.$entry.'/');
}
$d->close();
return $arDir;
}
function printTree($array, $level=0) {
foreach($array as $key => $value) {
echo "<div class='dir' style='width:
".($level*20)."px;'> </div>".$key."<br/>\n";
if(is_array($value))
printTree($value, $level+1);
}
}
Usage is as simple as this:
$dir = "<any directory you like>";
$arDirTree = dirTree($dir);
printTree($arDirTree);
It is easy to add files to the tree also - so enjoy.
----
Server IP: 194.239.128.8
Probable Submitter: 213.150.58.116
----
Manual Page -- http://www.php.net/manual/en/ref.dir.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+61285
Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+61285&report=yes&reason=added+to+the+manual
Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+61285&report=yes&reason=bad+code
Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+61285&report=yes&reason=spam
Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+61285&report=yes&reason=useless
Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+61285&report=yes&reason=non-english
Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+61285&report=yes&reason=already+in+docs
Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+61285&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+61285&report=yes
Search -- http://master.php.net/manage/user-notes.php