= 1024 && $i < 4; $i++) $size /= 1024; return round($size, 2) . " " . $units[$i]; } function printFileListing($path = "./", $pattern = "*", $excluded = array(), $sort = "n", $direction = SORT_ASC) { $files = glob("$path$pattern"); $sizes = array(); $timestamps = array(); if (!is_array($files)) $files = array(); foreach ($files as $index => $file) { foreach ($excluded as $regexPattern) { if (preg_match("@$regexPattern@", $file)) { unset($files[$index]); continue 2; } } $sizes[] = filesize($file); $timestamps[] = filemtime($file); } switch ($sort) { // size case "s": array_multisort($sizes, $direction, $files, $timestamps); break; // modified case "m": array_multisort($timestamps, $direction, $files, $sizes); break; // name case "n": default: array_multisort($files, $direction, $sizes, $timestamps); break; } $iconFile = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA9QTFRFAAAA5PX6yez1/////////SHUhAAAAAV0Uk5T/////wD7tg5TAAAAQUlEQVR42mJgQQMMIAwFCAEmJkZGRgZmBnQBsAhEAKieEaoJoQKkCLcAxBZGyrQwoWuBiDCg+QXuMAzfogCAAAMAPGcCZJ/5Pw0AAAAASUVORK5CYII="; $iconDir = "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABJQTFRF//IAAAAA8ucA////ysAA////eQEvdgAAAAZ0Uk5T//////8As7+kvwAAADtJREFUeNpiYEUDDKyMyAAswMLExAAFzIyMDCgKGJmBAkgKGOgrwIQsAHYpTAjkUlS/gAQwfIsGAAIMAN7QAc8Ckh4aAAAAAElFTkSuQmCC"; $iconAsc = "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAMAAAB1GNVPAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRF////////VXz1bAAAAAJ0Uk5T/wDltzBKAAAAGklEQVR42mJgZGRkgGAGBhABohigJBAABBgAATAADUnnWMkAAAAASUVORK5CYII="; $iconDesc = "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAECAMAAAB1GNVPAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRF////////VXz1bAAAAAJ0Uk5T/wDltzBKAAAAF0lEQVR42mJggAJGKMkIYjCCaDAGCDAAAJAADcpaiWkAAAAASUVORK5CYII="; $parent = explode("/", currentPath()); echo "

Index of " . currentPath() . "

\n"; echo "

← Parent directory

\n"; echo "\n"; echo "\t\n\t\t\n"; $labels = array( "n" => "Name", "s" => "Size", "m" => "Modified" ); foreach ($labels as $key => $label) { $link = "?s=$key"; $image = ""; if ($sort == $key) { $d = $direction == SORT_DESC ? "a" : "d"; $link .= "&d=$d"; $icon = $d == "a" ? $iconDesc : $iconAsc; $image = " \"\""; } echo "\t\t\n"; } echo "\t\n"; foreach ($files as $index => $file) { $name = basename($file); $url = currentPath() . "/" . rawurlencode($name); $isDir = is_dir($file); $type = $isDir ? "Directory" : "File"; $icon = $isDir ? $iconDir : $iconFile; $class = $class == "even" ? "odd" : "even"; echo "\t\n" . "\t\t\n" . "\t\t\n" . "\t\t\n" . "\t\t\n" . "\t\n"; } echo "
$label$image
\"$type\"$name$size$modified
\n"; }