$file, 'isdir' => $isdir, 'size' => $isdir ? 0 : filesize($path . $file), 'time' => filemtime($path . $file)); if ($isdir) $ls_d[] = $item; else $ls[] = $item; $_total++; $_total_size += $item['size']; } return array_merge($ls_d, $ls); } // Get the list of files $items = ls('.' . (empty($_browse) ? '' : '/' . $_browse), $showDirectories, $showHiddenFiles); // Sort it function sortByName($a, $b) { return ($a['isdir'] == $b['isdir'] ? strtolower($a['name']) > strtolower($b['name']) : $a['isdir'] < $b['isdir']); } function sortBySize($a, $b) { return ($a['isdir'] == $b['isdir'] ? $a['size'] > $b['size'] : $a['isdir'] < $b['isdir']); } function sortByTime($a, $b) { return ($a['time'] > $b['time']); } switch (@$_GET['s']) { case 'size': $_sort = 'size'; usort($items, 'sortBySize'); break; case 'time': $_sort = 'time'; usort($items, 'sortByTime'); break; default : $_sort = 'name'; usort($items, 'sortByName'); break; } // Reverse? $_sort_reverse = (@$_GET['r'] == '1'); if ($_sort_reverse) $items = array_reverse($items); // Add parent if ($showParent && $_path != '/' && empty($_browse)) array_unshift($items, array( 'name' => '..', 'isparent' => true, 'isdir' => true, 'size' => 0, 'time' => 0 )); // Add parent in case of browsing a sub-folder if (!empty($_browse)) array_unshift($items, array( 'name' => '..', 'isparent' => false, 'isdir' => true, 'size' => 0, 'time' => 0 )); // 37.6 MB is better than 39487001 function humanizeFilesize($val, $round = 0) { $unit = array('','K','M','G','T','P','E','Z','Y'); do { $val /= 1024; array_shift($unit); } while ($val >= 1000); return sprintf('%.'.intval($round).'f', $val) . ' ' . array_shift($unit) . 'B'; } // Titles parser function getTitle($title) { global $_path, $_total, $_total_size, $sizeDecimals; return str_replace(array('{{path}}', '{{files}}', '{{size}}'), array($_path, $_total, humanizeFilesize($_total_size, $sizeDecimals)), $title); } // Link builder function buildLink($changes) { global $_self; $params = $_GET; foreach ($changes as $k => $v) if (is_null($v)) unset($params[$k]); else $params[$k] = $v; foreach ($params as $k => $v) $params[$k] = urlencode($k) . '=' . urlencode($v); return empty($params) ? $_self : $_self . '?' . implode($params, '&'); } ?> <?php echo htmlentities(getTitle($title)) ?> >

'; print_r($items); //For testing print '
'.'************************************************'.'
'; } ?>