把KB转化为KB及以上单位

 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 }

 

posted @ 2016-09-14 12:16  gentsir  阅读(644)  评论(0编辑  收藏  举报