找回密码
 注册

[PHP] PHP字节单位转换

php 发表于 2012/12/5 18:47 | 显示全部楼层 |阅读模式
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);
?>

手机版|轻松E站

轻松E站

快速回复 返回顶部 返回列表