Joe Schaeffer wrote:
Joe,
Here is a simplified recursive version of your above statement.
<?php
$dir = '.';
function displayDir($dir='.') {
$show = FALSE;
$results = glob($dir.'/*');
foreach ( $results AS $entry ) {
if ( is_dir($entry) && !in_array($entry, array('.', '..')) ) {
$dirs[] = $entry;
$show = TRUE;
}
}
if ( $show ) {
echo '<ul>';
foreach ( $dirs AS $entry ) {
echo '<li>', basename($entry);
displayDir($entry);
echo '</li>';
}
echo '</ul>';
}
}
displayDir($dir);
?>
Hope this helps
--
Jim Lucas
Excellent, Jim. Thanks very much for your help.
At the risk of straying too far from the original
subject/call-for-help, is there a way to flag the *first* time the
function runs through a <ul> creation? Though my design doesn't call
for it now, I could see the value of styling the first level
separately than the sub-directories.
Hi,
This one makes use of the SPL and can handle a filter. Maybe not the
cleanest way, but good enough for me.
function DirectoryIterator($path, $filter = FALSE) {
$files = new RecursiveDirectoryIterator($path);
foreach($files as $file) {
if ($filter !== FALSE) {
if (array_search($file->getFileName(), $filter) !== FALSE) {
continue;
}
}
if ($file->isDir()) {
$name = $file->__toString();
echo str_replace(chr(92), chr(92).chr(92),
$name).chr(92).chr(92)."\n";
DirectoryIterator($name, $filter);
}
}
}
$path = 'C:\\projects\\sites\\www.example.com\\';
DirectoryIterator($path, array('.svn'));