~~~ /** * 格式化字节大小 * @param number $size 字节数 * @param string $delimiter 数字和单位分隔符 * @return string 格式化后的带单位的大小 */ function format_bytes($size, $delimiter = '') { $units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB'); for ($i = 0; $size >= 1024 && $i < 5; $i++) $size /= 1024; return round($size, 2) . $delimiter . $units[$i]; } ~~~ ``` function formatsize($size){ $prec = 3; $size = round(abs($size)); $units = array(0 => " B", 1 => " KB", 2 => " MB", 3 => " GB", 4 => " TB"); if($size == 0){ return str_repeat(" ", $prec)."0".$units[0]; } $unit = min(4, floor(log($size) / log(2) / 10)); $size = $size * pow(2, -10 * $unit); $digi = $prec - 1 - floor(log($size) / log(10)); $size = round($size * pow(10, $digi)) * pow(10, -$digi); return $size.$units[$unit]; } ```