wp_convert_hr_to_bytes()WP 2.3.0

Converts a shortened byte value to an integer byte value. For example, the string 1Mb will be converted to the number 1048576.

Function workflow:

  • The passed value is processed through the functions trim() and strtolower().
  • The value is "cleaned" separately using the intval() function, discarding letters.
  • A check for the presence of characters such as g, m, and k is performed, based on which multiplication occurs.
  • The resulting value is processed by the min() function.

size_format() — a similar function that, on the contrary, converts the passed number (bytes) into a readable form, for example, 9999 will turn into 10 KB.

No Hooks.

Returns

Int. Size in bytes.

Usage

wp_convert_hr_to_bytes( $value );
$value(string) (required)
Byte value (PHP ini), shortened or regular. For example, 1Mb or 20Kb.

Examples

0

#1 Examples of how the function works

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

Changelog

Since 2.3.0 Introduced.
Since 4.6.0 Moved from media.php to load.php.

wp_convert_hr_to_bytes() code WP 6.8.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 );
}