在显示文件大小的时候,我们通常需要将数字转换成有单位的格式(如将35840字节转换成35KB),但是在需要计算的地方,还需要将其还原成数字,本文介绍的函数摘自 phpMyAdmin,可以将有单位的文件大小格式还原成数字。
PHP:
1 <?php
2 // 说明:将有单位的文件大小格式还原成数字
3 // 整理:http://www.CodeBit.cn
4 /**
5 * Converts numbers like 10M into bytes
6 *
7 * @param string $size
8 * @return integer $size
9 */
10 function get_real_size($size = 0)
11 {
12 if (!$size) {
13 return 0;
14 }
15 $scan['MB'] = 1048576;
16 $scan['Mb'] = 1048576;
17 $scan['M'] = 1048576;
18 $scan['m'] = 1048576;
19 $scan['KB'] = 1024;
20 $scan['Kb'] = 1024;
21 $scan['K'] = 1024;
22 $scan['k'] = 1024;
23
24 while (list($key) = each($scan)) {
25 if ((strlen($size) > strlen($key))
26 && (substr($size, strlen($size) - strlen($key)) == $key)) {
27 $size = substr($size, 0, strlen($size) - strlen($key)) * $scan[$key];
28 break;
29 }
30 }
31 return $size;
32 } // end function get_real_size()
33
34
35 echo 173 * 1048576;
36 echo "<br />";
37 echo get_real_size('173m');
38
39 ?>
2 // 说明:将有单位的文件大小格式还原成数字
3 // 整理:http://www.CodeBit.cn
4 /**
5 * Converts numbers like 10M into bytes
6 *
7 * @param string $size
8 * @return integer $size
9 */
10 function get_real_size($size = 0)
11 {
12 if (!$size) {
13 return 0;
14 }
15 $scan['MB'] = 1048576;
16 $scan['Mb'] = 1048576;
17 $scan['M'] = 1048576;
18 $scan['m'] = 1048576;
19 $scan['KB'] = 1024;
20 $scan['Kb'] = 1024;
21 $scan['K'] = 1024;
22 $scan['k'] = 1024;
23
24 while (list($key) = each($scan)) {
25 if ((strlen($size) > strlen($key))
26 && (substr($size, strlen($size) - strlen($key)) == $key)) {
27 $size = substr($size, 0, strlen($size) - strlen($key)) * $scan[$key];
28 break;
29 }
30 }
31 return $size;
32 } // end function get_real_size()
33
34
35 echo 173 * 1048576;
36 echo "<br />";
37 echo get_real_size('173m');
38
39 ?>
浙公网安备 33010602011771号