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);
?> |
|