Преобразование размера файлов в челеовекопонятный формат в 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];
}
    
    Как видите второй пример более лаконичный, хотя и содержит больше математики.
Таким образом, с помощью вот этих двух примеров кода Вы сможете вычислить человекопонятный размер файла, который можно использовать в своем файловом менеджере, например.
- 
					Создано 02.07.2019 10:16:05  
- 
					 Михаил Русаков Михаил Русаков
 
			 
			 
		 
				 
			 
				 
				 
				 
				
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.