Вывод списка файлов из диреткории

Для очередного проекта на MODx мне понадобилось вывести список файлов из указанной директории с указанием размера файла и даты создания файлов.

<?php

function formatBytes($b,$p = null) {
/**
*
* @author Martin Sweeny
* @version 2010.0617
*
* returns formatted number of bytes.
* two parameters: the bytes and the precision (optional).
* if no precision is set, function will determine clean
* result automatically.
*
**/
$units = array(«B»,»kB»,»MB»,»GB»,»TB»,»PB»,»EB»,»ZB»,»YB»);
$c=0;
if(!$p && $p !== 0) {
foreach($units as $k => $u) {
if(($b / pow(1024,$k)) >= 1) {
$r[«bytes»] = $b / pow(1024,$k);
$r[«units»] = $u;
$c++;
}
}
return number_format($r[«bytes»],2) . » » . $r[«units»];
} else {
return number_format($b / pow(1024,$p)) . » » . $units[$p];
}
}

//    @author Max Rogalsky

// директория с файлами
// знаю что некрасиво в конце со слешем,
// но пришлось делать буквально на коленке
$downloads = ‘files/’;
$i = 0;
// открываем директорию
$handle = opendir ($downloads);
// читаем содержимое каталога
while($file = readdir($handle))
{
if ($file != ‘.’ && $file != ‘..’)
{
$files[$i] = $file;    //формируем массив файлов
$i++;
}
}
// сортируем в алфавитном порядке
sort ($files);

for ($f = 0; $f<sizeof($files); $f++)
{
// выводим ссылку на файл
echo «<a href='».$downloads.$files[$f].»‘>».$files[$f].»</a>\n»;
// получаем размер файла
$f_size = filesize($downloads.$files[$f]);
// получаем дату создания файла
$f_time = date(«d-m-Y», filemtime($downloads.$files[$f]));
// выводим с помощью функции formatBytes размер файла и дату
echo «size:».formatBytes($f_size).»&nbsp;date:».$f_time;
echo «<br>»;
}
?>

Тэги:

Вы должны залогиниттся ,чтобы оставить комментарий.