| 
 
| PHP将字节大小或文件尺寸转换为以G/M/K/B字符表示的大小. 精确计算所有单位,请使用下面第一个函数.转换结果如2M 545K 352B如果只需要最大的单位.请使用第二个函数.转换结果如180.33 MB
 因为函数同名,所以不要两个同时都写到一个PHP文件里面.
 <?php
 /***
 **www.qSyz.net原创
 **参数$size,原始字节数,如65536**返回所有单位表示的尺寸
 ***/
 function calc($size){
 $units = array(3=>'G',2=>'M',1=>'K',0=>'B');//单位字符,可类推添加更多字符.
 foreach($units as $i => $unit){
 if($i>0){
 $n = $size /pow(1024,$i)%pow(1024,$i);
 }else{
 $n = $size%1024;
 }
 
 if($n!=0){
 @$str.=" $n{$unit} ";
 }
 }
 return  $str;
 }
 echo calc(2655584);
 ?>
 <?php
 /***
 **www.qSyz.net原创
 **参数$size,原始字节数,如65536**参数$digits,保留的小数位数,默认为2位
 **返回最大单位表示的尺寸
 ***/
 function calc($size,$digits=2){
 $unit= array('','K','M','G','T','P');
 $base= 1024;
 $i   = floor(log($size,$base));
 $n   = count($unit);
 if($i >= $n){
 $i=$n-1;
 }
 return round($size/pow($base,$i),$digits).' '.$unit[$i] . 'B';
 }
 echo calc(5632124788522146278);
 ?>
 | 
 |