wp_convert_hr_to_bytes()WP 2.3.0

Преобразует сокращенное байтовое значение в целочисленное байтовое значение. Например, строка 1Mb будет преобразована в число 1048576.

Схема работы функции:

  • Переданное значение пропускается через функции trim() и strtolower().
  • Отдельно значение "очищается" функцией intval(), отбрасывая литеры.
  • Проверка на вхождение таких символов, как g, m и k, на основе которых происходит умножение.
  • Обработка полученного значение функцией min().

size_format() — похожая функция, которая наоборот, превращает переданное число (байты) в читаемый вид, например, 9999 превратиться в 10 KB.

Основа для: wp_max_upload_size()

Хуков нет.

Возвращает

int. Размер в байтах.

Использование

wp_convert_hr_to_bytes( $value );
$value(строка) (обязательный)
Значение байта (PHP ini), сокращенное или обычное. Например, 1Mb или 20Kb.

Примеры

0

#1 Примеры работы функции

wp_convert_hr_to_bytes('1Mb')       //> 1048576
wp_convert_hr_to_bytes('1mb')       //> 1048576
wp_convert_hr_to_bytes('1mB')       //> 1048576
wp_convert_hr_to_bytes('1 Mb')      //> 1048576
wp_convert_hr_to_bytes('1,9 Mb')    //> 1048576
wp_convert_hr_to_bytes('1.9 Mb')    //> 1048576
wp_convert_hr_to_bytes('15 Mb')     //> 15728640

Список изменений

С версии 2.3.0 Введена.
С версии 4.6.0 Moved from media.php to load.php.

Код wp_convert_hr_to_bytes() WP 6.7.1

function wp_convert_hr_to_bytes( $value ) {
	$value = strtolower( trim( $value ) );
	$bytes = (int) $value;

	if ( str_contains( $value, 'g' ) ) {
		$bytes *= GB_IN_BYTES;
	} elseif ( str_contains( $value, 'm' ) ) {
		$bytes *= MB_IN_BYTES;
	} elseif ( str_contains( $value, 'k' ) ) {
		$bytes *= KB_IN_BYTES;
	}

	// Deal with large (float) values which run into the maximum integer size.
	return min( $bytes, PHP_INT_MAX );
}