使用filesize函数和Linux ls -alh时获取不同的文件大小

时间:2017-05-30 04:01:48

标签: php linux filesize

我使用此功能获取文件大小

function human_readable_filesize($bytes){
if ($bytes == 0)
    return "0.00";

$s = array('B', 'KB', 'MB', 'GB', 'TB', 'PB');
$e = floor(log($bytes, 1024));

return round($bytes/pow(1024, $e), 2).$s[$e];}

但是在使用Linux命令ls -alh

时我得到了不同的结果

php return 2.31mb

Linux返回2.4mb

1 个答案:

答案 0 :(得分:2)

Linux向您展示的是SI兆字节(基于1000个单位),而不是IEC兆字节(基于1024个单位)

2.31*1024*1024/1000/1000 =  2.422211

根据their policy of representing numbers。对于网络带宽和磁盘大小,它们使用SI度量,即1 MB = 1,000 kB = 1,000,000字节。

对于内存大小,它们使用IEC度量,即1 MiB = 1,024 KiB = 1,048,576字节。