function recursive_scandir($path, &$dir) { foreach ($dir as $key => $value) { $dir[$key] = array_flip(scandir($path . '/' . $key, 0)); unset($dir[$key]['.']); unset($dir[$key]['..']); recursive_scandir($path . '/' . $key, $dir[$key]); } }
function recursive_scandir($dir, $level, $max) { if ($level >= $max) { return '<li class="none">Recursion Limit</li>'; } $scan = @scandir($dir); if ($scan === false) { return '<li class="dir">Access Denied</li>'; } $files = ''; $folders = ''; foreach ($scan as $file) { if ($file === '.' || $file === '..' && $level > 0) { continue; } if (is_file("{$dir}/{$file}")) { $files .= '<li class="' . get_Type(end(explode('.', $file))) . '"><a href="' . str_replace(' ', "%20", html("../{$dir}/{$file}")) . '">' . html($file) . '</a></li>'; } else { if ($file === '..') { $folders .= '<li class="parent"><a href="' . $file . '/">Parent Directory</a></li>'; } else { $folders .= '<li class="dir"><a href="' . str_replace(' ', "%20", html("../{$dir}/{$file}/")) . '">' . html($file) . '</a><ul>' . recursive_scandir("{$dir}/{$file}", $level + 1, $max) . '</ul></li>'; } } } return (count($scan) == 2 ? $folders . '<li class="none">Empty Directory</li>' : $folders) . $files; }
function recursive_scandir($dir, $base) { $files = array(); foreach (array_diff(scandir($dir), array('.', '..')) as $file) { if (is_dir("{$dir}/{$file}")) { if ($base == "") { $files = array_merge($files, recursive_scandir("{$dir}/{$file}", "{$file}")); } else { $files = array_merge($files, recursive_scandir("{$dir}/{$file}", "{$base}/{$file}")); } } else { if ($base == "") { $files[] = $file; } else { $files[] = "{$base}/{$file}"; } } } return $files; }