很简单、很快速的格式化文件大小

2008年10月30日 | 分类: PHP编程, 应用技巧 | 标签: , ,

今天在PHP官网(http://www.php.net)上面查询number_format函数的时候发现了一小段代码,虽然很短,但是我觉得很有用,最主要的是我受到了很多启发,下面把那段代码贴出来以便共享,:)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
< ?php
function format_filesize($number, $decimals = 3, $force_unit = false, $dec_char = ',', $thousands_char = ' ')
{
//string format_filesize(int(0,) $number, (bool(0), int(0,4)) $force_unit, int $decimals, char $dec_char, char $thousands_char)
//format a filesize $number with unit (setted by $force_unit(see below for the number))
$units = array('B', 'KB', 'MB', 'GB', 'TB');
if($force_unit === false)
$unit = floor(log($number, 2) / 10);
else
$unit = $force_unit;
if($unit == 0)
$decimals = 0;
return number_format($number / pow(1024, $unit), $decimals, $dec_char, $thousands_char).' '.$units[$unit];
}
?>

例子
format_filesize(2540367) => ’2,423 MB’
format_filesize(2540367, 2) => ’2,42 MB’
format_filesize(2540367, 1, 1) => ’2 480,8 KB’ //0=>’B', 1=>’KB’, 2=>’MB’, 3=>’GB’, 4=>’TB’ (see $units)
format_filesize(2540687367, 2, 1, ‘,’, ‘.’) => ’2.481.140,01 KB’

log($number, 2) / 10 = log($number, 1024) ;)
很快、很简单不是吗? :)

Share
目前还没有任何评论.