Преобразование размера файлов в челеовекопонятный формат в PHP
Доброго времени суток, уважаемые посетители сайта MyRusakov.Ru! В данной небольшой статье я хочу показать Вам два способа преобразования размеров файлов в человекопонятную форму.
Итак, способ первый - в лоб:
// преобразует данные в человекопонятный формат
function bytesToHuman($size)
{
// если размер файла, больше или равен 1Гб
if ($size >= 1073741824) {
$fileSize = round($size / 1024 / 1024 / 1024,1) . 'GB';
// >= 1 мегабайта
} elseif ($size >= 1048576) {
$fileSize = round($size / 1024 / 1024,1) . 'MB';
} elseif($size >= 1024) {
$fileSize = round($size / 1024,1) . 'KB';
} else {
$fileSize = $size . 'b';
}
return $fileSize;
}
В данном примере поставленная задача решается простым сравнением размера файла с заранее заданными константами. Возвращается из функции строковое представление размера файла.
Но есть еще и другой способ, который содержит больше матчасти:
function byte_convert($bytes)
{
// если размер файла равен нулю
if( $bytes == 0 )
return "0.00 B";
// массив обозначений размеров
$s = array('B','KB','MB','GB');
// вычисляем стпень от размера файла
$e = floor( log($bytes,1024) );
return round( $bytes / pow(1024,$e), 2 ) . $s[$e];
}
Как видите второй пример более лаконичный, хотя и содержит больше математики.
Таким образом, с помощью вот этих двух примеров кода Вы сможете вычислить человекопонятный размер файла, который можно использовать в своем файловом менеджере, например.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.