zoukankan      html  css  js  c++  java
  • PHP格式化显示文件大小函数

    用filesize() 函数可以返回文件的大小,可是返回值是以字节(B)为单位的,看起来不方便。怎么让它根据文件的大小自动以KB、MB、GB为单位显示呢,用下面这个函数就可以实现了。

    <?php
    /**
     * 格式化文件大小显示
     *
     * @param int $size
     * @return string
     */
    function format_size($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];
    }
    ?>
    /**
     * 格式化容量大小
     */
    function format_size($size)
    {
    	if ($size >= 1073741824)
    	{
    		$size = round($size / 1073741824 * 100) / 100 . ' GB';
    	}
    	elseif ($size >= 1048576)
    	{
    		$size = round($size / 1048576 * 100) / 100 . ' MB';
    	}
    	elseif ($size >= 1024)
    	{
    		$size = round($size / 1024 * 100) / 100 . ' KB';
    	}
    	else
    	{
    		$size = $size . ' Bytes';
    	}
    
    	return $size;
    }
  • 相关阅读:
    [bzoj3694]最短路
    [bzoj3172][Tjoi2013]单词
    [bzoj2243][SDOI2011]染色
    [bzoj1036][ZJOI2008]树的统计Count
    [学习笔记]树链剖分
    [bzoj4552][Tjoi2016][Heoi2016]排序
    [51nod1515]明辨是非
    [51nod1685]第k大区间
    [日常训练]training
    BZOJ3811: 玛里苟斯
  • 原文地址:https://www.cnblogs.com/52php/p/5657986.html
Copyright © 2011-2022 走看看