php中的 filesize() 函数可以获取文件的大小,并以字节为单位输出。但有时候我们获取一个比软大的文件的大小时,如果再以字节为单位输出的话,就显的非常凌乱也不方便查看,下面博文就重点说一下,如何友好的显示一个文件大小的方法。

php 获取一个文件的大小的方法

filesize():获取文件的大小,并以字节为单位输出,若失败返回 false.

例代码:

echo filesize('dd.docx');
//140481
echo filesize('tcpdf_MpGkxN.zip');
// 17144888

注:通过上面的示例可以看出,如果直接用 filesize 函数来输出文件大小话,如果遇到体积大的情况下,输出的数据不方便查看。

php获取文件的大小并以友好的格式输出

自定义一个格式化文件大小的方法函数

/**
 * # 格式化文件大小的函数
 * @param int $size 以字节为单位的文件大小的数值
 * 
 * @return string 带有单位的文件大小
 */
function formatSize($size) { 
    $sizes = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"); 
    if ($size == 0) {  
        return('n/a');  
    } else { 
      return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizes[$i]);  
    } 
}

函数调用:

//以字节为单的输出
echo filesize('tcpdf_MpGkxN.zip'); //17144888
//划算为合适的单位
echo formatSize(filesize('tcpdf_MpGkxN.zip')); //16.35 MB