将有单位的文件大小格式还原成数字

在显示文件大小的时候,我们通常需要将数字转换成有单位的格式(如将35840字节转换成35KB),但是在需要计算的地方,还需要将其还原成数字,本文介绍的函数摘自 phpMyAdmin,可以将有单位的文件大小格式还原成数字。

 
<?php
// 说明:将有单位的文件大小格式还原成数字
// 整理:http://www.CodeBit.cn

/**
 * Converts numbers like 10M into bytes
 *
 * @param   string  $size
 * @return  integer $size
 */
function get_real_size($size = 0)
{
    if (!$size) {
        return 0;
    }
    $scan['MB'] = 1048576;
    $scan['Mb'] = 1048576;
    $scan['M']  = 1048576;
    $scan['m']  = 1048576;
    $scan['KB'] =    1024;
    $scan['Kb'] =    1024;
    $scan['K']  =    1024;
    $scan['k']  =    1024;

    while (list($key) = each($scan)) {
        if ((strlen($size) > strlen($key))
          && (substr($size, strlen($size) - strlen($key)) == $key)) {
            $size = substr($size, 0, strlen($size) - strlen($key)) * $scan[$key];
            break;
        }
    }
    return $size;
} // end function get_real_size()


echo 173 * 1048576;
echo "<br />";
echo get_real_size('173m');

?>