在PHP中使用适当的面额显示文件大小

时间:2012-07-07 09:33:14

标签: php math precision filesize

使用PHP,在字节数方面用适当的面额显示文件大小的简单方法是什么?

1 个答案:

答案 0 :(得分:0)

我想出了一个小功能:

function filesize_exact($iSize, $iPrecision = 2, $bSpace = true) {

    // By Gabriel Nahmias (gabriel@terrasoftlabs.com)

    // Measure certain byte ranges in descending order.

    $sUnit = "bytes";

    if ($iSize > 1024 * 1024 * 1024 * 1024 * 1024) {
        $sUnit = "PB";
        $iSize /= 1024 * 1024 * 1024 * 1024 * 1024;
    } else if ($iSize > 1024 * 1024 * 1024 * 1024) {
        $sUnit = "TB";
        $iSize /= 1024 * 1024 * 1024 * 1024;
    } else if ($iSize > 1024 * 1024 * 1024) {
        $sUnit = "GB";
        $iSize /= 1024 * 1024 * 1024;
    } else if ($iSize > 1024 * 1024) {
        $sUnit = "MB";
        $iSize /= 1024 * 1024;
    } else if ($iSize > 1024) {
        $sUnit = "KB";
        $iSize /= 1024;
    }

    if ($iPrecision > 0 && $iPrecision != NULL)
        $iSize = round($iSize, $iPrecision);

    // Make sure bytes is always spaced out; could be changed.

    return $iSize . ($bSpace || $sUnit == "bytes" ? " " : "") . $sUnit;

}

适合我。有几个不错的选择。您可以扩展它以封装任何大小的范围,只要它按降序排列,因为这是逻辑在这里设置的方式,它是合适的。有关文件大小面额的合适列表,请参阅http://www.webopedia.com/quick_ref/FileSizeConversionTable.asp