function format_size

Generates a string representation for the given byte count.

Parameters

$size: A size in bytes.

$langcode: Optional language code to translate to a language other than what is used to display the page.

Return value

A translated string representation of the size.

Related topics

17 calls to format_size()
color_scheme_form_submit in drupal/core/modules/color/color.module
Form submission handler for color_scheme_form().
FileFieldValidateTest::testFileMaxSize in drupal/core/modules/file/lib/Drupal/file/Tests/FileFieldValidateTest.php
Tests the max file size validator.
FileSize::render in drupal/core/modules/views/lib/Drupal/views/Plugin/views/field/FileSize.php
Render the field.
FileTokenReplaceTest::testFileTokenReplacement in drupal/core/modules/file/lib/Drupal/file/Tests/FileTokenReplaceTest.php
Creates a file, then tests the tokens generated from it.
file_ajax_progress in drupal/core/modules/file/file.module
Ajax callback: Retrieves upload progress.

... See full list

File

drupal/core/includes/common.inc, line 1755
Common functions that many Drupal modules will need to reference.

Code

function format_size($size, $langcode = NULL) {
  if ($size < DRUPAL_KILOBYTE) {
    return format_plural($size, '1 byte', '@count bytes', array(), array(
      'langcode' => $langcode,
    ));
  }
  else {
    $size = $size / DRUPAL_KILOBYTE;

    // Convert bytes to kilobytes.
    $units = array(
      t('@size KB', array(), array(
        'langcode' => $langcode,
      )),
      t('@size MB', array(), array(
        'langcode' => $langcode,
      )),
      t('@size GB', array(), array(
        'langcode' => $langcode,
      )),
      t('@size TB', array(), array(
        'langcode' => $langcode,
      )),
      t('@size PB', array(), array(
        'langcode' => $langcode,
      )),
      t('@size EB', array(), array(
        'langcode' => $langcode,
      )),
      t('@size ZB', array(), array(
        'langcode' => $langcode,
      )),
      t('@size YB', array(), array(
        'langcode' => $langcode,
      )),
    );
    foreach ($units as $unit) {
      if (round($size, 2) >= DRUPAL_KILOBYTE) {
        $size = $size / DRUPAL_KILOBYTE;
      }
      else {
        break;
      }
    }
    return str_replace('@size', round($size, 2), $unit);
  }
}