1 /**
2 * 把KB转化为KB及以上单位
3 * @param int $kb
4 * @return string $new_val
5 */
6 function return_over_kb($kb)
7 {
8 $kb /= 1024;
9 $unit = 0; // 0KB/MB 1GB 2TB 3PB 4EB
10 while ($kb >= 1024) {
11 $kb /= 1024;
12 $unit++;
13 }
14 switch ($unit) {
15 case 1: $b = 'GB'; break;
16 case 2: $b = 'TB'; break;
17 case 3: $b = 'PB'; break;
18 case 4: $b = 'EB'; break;
19 default:
20 if ($kb >= 1) {
21 $b = 'MB';
22 } else {
23 $b = 'KB';
24 }
25 break;
26 }
27
28 if ($unit == 0) { // 要么是KB 要么是MB
29 if ($kb < 1) {
30 $kb *= 1024;
31 }
32 }
33
34 return round($kb, 1) . $b;
35 }