PHP文件大小MB/KB转换

146

如何将PHP的filesize()函数的输出转换为带有MB、KB等格式的好格式?

例如:

  • 如果大小小于1MB,则以KB为单位显示大小。
  • 如果大小在1MB到1GB之间,则以MB为单位显示。
  • 如果大小大于1GB,则以GB为单位显示。

1
请查看以下内容,该内容与 PHP 将字节格式化为千字节、兆字节、吉字节有关:https://dev59.com/A3E85IYBdhLWcg3w_I78 - Code
如果您正在使用WordPress,则可以使用共享函数size_format() - Earlee
如果你不是在使用WordPress(我是!),你可以随时查看https://developer.wordpress.org/reference/functions/size_format/并复制源代码。它定义了一些常量,但一切都应该很容易理解;此外,WordPress代码试图处理国际化/本地化,这可能有些过度(而`number_format()`将在最后完成漂亮格式的工作,而不是使用WP自己的函数)。 - undefined
11个回答

2
function getNiceFileSize($file, $digits = 2){
    if (is_file($file)) {
        $filePath = $file;
        if (!realpath($filePath)) {
            $filePath = $_SERVER["DOCUMENT_ROOT"] . $filePath;
        }
        $fileSize = filesize($filePath);
        $sizes = array("TB", "GB", "MB", "KB", "B");
        $total = count($sizes);
        while ($total-- && $fileSize > 1024) {
            $fileSize /= 1024;
        }
        return round($fileSize, $digits) . " " . $sizes[$total];
    }
    return false;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接