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

В категорії Підказки от 24 Червня, 2011. Автор admin

Для очередного проекта на 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>”;
}
?>

Теги:

Рекурсивная смена прав доступа

В категорії Підказки от 24 Червня, 2011. Автор admin

Необходимо сменить права доступа на все файлы, папки и подпапки в определенной директории.

Для файлов

find . -type f -exec chmod 644 {} \;

Для директорий

find . -type d -exec chmod 755 {} \;
Теги: ,

Принудительно запускаем fsck во время следующей перезагрузки

В категорії Підказки от 23 Червня, 2011. Автор admin

По некоторым причинам вам может понадобиться принудительно заставить систему выполнить fsck во время перезагрузки. Для этого достаточно создать пустой файл с именем forcefsck в вашей системе:

touch /forcefsck

После перезагрузки система запустит fsck и после завершения его работы удалит файл /forcefsck из системы.

Теги: ,