Функция SIZE_FORMAT() в WordPress: преобразование байтов в удобочитаемый формат

Функция SIZE_FORMAT() в WordPress

Функция size_format() позволяет преобразовать количество байтов в удобочитаемый формат. Например, вместо того чтобы видеть 1024 байта, вы увидите 1 КБ, а вместо 1048576 байт — 1 МБ. Таким образом, чтение информации становится более комфортным.

Примечание: В PHP целые числа (integer) ограничены 32 битами, если они не используются на 64-битной архитектуре, где они могут иметь размер 64 бита. Если вам нужно работать с числами больше, чем может хранить целое число PHP, используйте строку. Она будет преобразована в число с плавающей запятой (double), который всегда имеет длину 64 бита.

Технически корректные названия единиц измерения для степеней 1024 - это KiB, MiB и так далее.

Использование функции

Функция size_format() вызывает другую функцию для форматирования чисел в зависимости от локализации: number_format_i18n().

Время выполнения:

  • 1 раз: 0.000025 сек (очень быстро)
  • 50000 раз: 0.11 сек (по-прежнему быстро)
  • Версия PHP: 7.0.8, версия WP: 4.6

Возврат результата

Функция возвращает либо строку с числом, либо false в случае ошибки.

Синтаксис

size_format( $bytes, $decimals );
  • $bytes (int|string) (обязательный параметр): количество байтов. Учтите максимальный размер для целых чисел.
  • $decimals (int): точность числа десятичных знаков.

Примеры использования

Вот несколько примеров использования функции size_format():

echo size_format( 99 );            // Вывод: 99 B
echo size_format( 9999 );          // Вывод: 10 KB
echo size_format( '9999' );        // Вывод: 10 KB
echo size_format( 9999, 2 );       // Вывод: 9,76 KB
echo size_format( 9999999 );       // Вывод: 10 MB
echo size_format( 9999999999 );    // Вывод: 9 GB
echo size_format( 9999999999999 ); // Вывод: 9 TB

Пример отображения размера файла в удобочитаемом формате

$file_size = 1229; // размер файла в байтах

echo size_format( $file_size, 2 ); // Вывод: 1.20 KB

Изменения в истории версий

  • С версии 2.3.0 — функция была внедрена.
  • С версии 6.0.0 — добавлена поддержка для PB (петабайты), EB (эксабайты), ZB (зеттабайты) и YB (йоттабайты).

Код функции

Ниже приведен исходный код функции size_format из файла wp-includes/functions.php:


function size_format( $bytes, $decimals = 0 ) {
$quant = array(
_x( 'YB', 'unit symbol' ) => YB_IN_BYTES,
_x( 'ZB', 'unit symbol' ) => ZB_IN_BYTES,
_x( 'EB', 'unit symbol' ) => EB_IN_BYTES,
_x( 'PB', 'unit symbol' ) => PB_IN_BYTES,
_x( 'TB', 'unit symbol' ) => TB_IN_BYTES,
_x( 'GB', 'unit symbol' ) => GB_IN_BYTES,
_x( 'MB', 'unit symbol' ) => MB_IN_BYTES,
_x( 'KB', 'unit symbol' ) => KB_IN_BYTES,
_x( 'B', 'unit symbol' ) => 1,
);

if ( 0 === $bytes ) {
    return number_format_i18n( 0, $decimals ) . ' ' . _x( 'B', 'unit symbol' );
}

foreach ( $quant as $unit => $mag ) {
    if ( (float) $bytes >= $mag ) {
        return number_format_i18n( $bytes / $mag, $decimals ) . ' ' . $unit;
    }
}

return false;

}

Функция size_format() позволяет разработчикам легко преобразовывать размер файлов в более удобный для восприятия формат, что делает её полезной для любых приложений, работающих с файлами в WordPress.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *