中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

PHP文件大小格式化函數(shù)合集

比如碰到一個(gè)很大的文件有49957289167B,大家一看這么一長(zhǎng)串的數(shù)字后面單位是字節(jié)B,還是不知道這個(gè)文件的大小是一個(gè)什么概念,我們把它轉(zhuǎn)換成GB為單位,就是46.53GB。用下面這些函數(shù)就可以完成這個(gè)工作:
復(fù)制代碼 代碼如下:
//轉(zhuǎn)換單位
function setupSize($fileSize) {
    $size = sprintf("%u", $fileSize);
    if($size == 0) {
         return("0 Bytes");
    }
    $sizename = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
    return round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizename[$i];
}
function byte_format($size, $dec=2){
    $a = array("B", "KB", "MB", "GB", "TB", "PB");
    $pos = 0;
    while ($size >= 1024) {
         $size /= 1024;
           $pos++;
    }
    return round($size,$dec)." ".$a[$pos];
 }
/* Use : echo format_size(filesize("fichier"));
Example result : 13,37 Ko */

function format_size($o) {
    $size = array('Go' => 1073741824, 'Mo' => 1048576, 'Ko' => 1024, 'octets' => 1);
    foreach ($size as $k => $v)
        if ($o >= $v) {
                if ($k == 'octets')
                        return round($o).' '.$k;
                return number_format($o / $v, 2, ',', ' ').' '.$k;
        }
}
/**
 * 文件大小格式化
 * @param integer $size 初始文件大小,單位為byte
 * @return array 格式化后的文件大小和單位數(shù)組,單位為byte、KB、MB、GB、TB
 */
function file_size_format($size = 0, $dec = 2) {
    $unit = array("B", "KB", "MB", "GB", "TB", "PB");
    $pos = 0;
    while ($size >= 1024) {
        $size /= 1024;
        $pos++;
    }
    $result['size'] = round($size, $dec);
    $result['unit'] = $unit[$pos];
    return $result['size'].$result['unit'];
}
echo file_size_format(123456789);

/**
 * 文件大小單位格式化
 * @param $bytes 文件實(shí)際大小,單位byte
 * @param $prec 轉(zhuǎn)換后精確度,默認(rèn)精確到小數(shù)點(diǎn)后兩位
 * @return 轉(zhuǎn)換后的大小+單位的字符串
 */
 function fsizeformat($bytes,$prec=2){
    $rank=0;
    $size=$bytes;
    $unit="B";
    while($size>1024){
        $size=$size/1024;
        $rank++;
    }
    $size=round($size,$prec);
    switch ($rank){
        case "1":
            $unit="KB";
            break;
        case "2":
            $unit="MB";
            break;
        case "3":
            $unit="GB";
            break;
        case "4":
            $unit="TB";
            break;
        default :

    }
    return $size." ".$unit;
 }

/**
 *  容量格式化
 * @param String   文件名(文件路徑)
 * @return  如果文件存在返回格式化的字符串 如果錯(cuò)誤返回錯(cuò)誤信息  Unknown File
 */ 
function sizeFormat ($fileName){ 
    //獲取文件的大小 
    @ $filesize=filesize($fileName); 
    //如果文件不存在返回錯(cuò)誤信息 
    if(false==$filesize){ 
       return 'Unknown File'; 
    }
    //格式化文件容量信息 
    if ($filesize >= 1073741824) $filesize = round($filesize / 1073741824 * 100) / 100 . ' GB'; 
    elseif ($filesize >= 1048576) $filesize = round($filesize / 1048576 * 100) / 100 . ' MB'; 
    elseif ($filesize >= 1024) $filesize = round($filesize / 1024 * 100) / 100 . ' KB'; 
    else $filesize = $filesize . ' Bytes'; 
    return $filesize; 
}
//測(cè)試函數(shù) 
echo sizeFormat('config.inc.php'); 

/**
  * 文件大小格式化
  * @param type $filesize
  */
private function sizeCount($filesize)
{
    if ($filesize >= 1073741824) {
        $filesize = round($filesize / 1073741824 * 100) / 100 . ' GB';
    }

    else if ($filesize >= 1048576) {
        $filesize = round($filesize / 1048576 * 100) / 100 . ' MB';
    }

    else if ($filesize >= 1024) {
        $filesize = round($filesize / 1024 * 100) / 100 . ' KB';
    }

    return $filesize;
}


//該函數(shù)最主要的是根據(jù)文件的字節(jié)數(shù),判斷應(yīng)當(dāng)選擇的統(tǒng)計(jì)單位,也就是說(shuō)一個(gè)文件用某一單位比如MB,那么該文件肯定小于1GB,否則當(dāng)然要用GB作為單位了,而且文件要大于KB,不然的話得用更小的單位統(tǒng)計(jì)。該函數(shù)代碼如下

//size()  統(tǒng)計(jì)文件大小
function size($byte)
{
    if($byte < 1024) {
      $unit="B";
    }
    else if($byte < 10240) {
      $byte=round_dp($byte/1024, 2);
      $unit="KB";
    }
    else if($byte < 102400) {
      $byte=round_dp($byte/1024, 2);
      $unit="KB";
    }
    else if($byte < 1048576) {
      $byte=round_dp($byte/1024, 2);
      $unit="KB";
    }
    else if ($byte < 10485760) {
      $byte=round_dp($byte/1048576, 2);
      $unit="MB";
    }
    else if ($byte < 104857600) {
      $byte=round_dp($byte/1048576,2);
      $unit="MB";
    }
    else if ($byte < 1073741824) {
      $byte=round_dp($byte/1048576, 2);
      $unit="MB";
    }
    else {
      $byte=round_dp($byte/1073741824, 2);
      $unit="GB";
    }

    $byte .= $unit;
    return $byte;
}
//輔助函數(shù) round_up(),該函數(shù)用來(lái)取舍小數(shù)點(diǎn)位數(shù)的,四舍五入。
function round_dp($num , $dp)
{
  $sh = pow(10 , $dp);
  return (round($num*$sh)/$sh);
}

這樣我們就能很好額統(tǒng)計(jì)任何一個(gè)文件的大小了,首先通過(guò)系統(tǒng)自帶的filesize()函數(shù)獲得文件的字節(jié)數(shù),再用上面的這些函數(shù)換算成適當(dāng)?shù)膯挝痪涂梢粤?/P>

php技術(shù)PHP文件大小格式化函數(shù)合集,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 五月综合激情婷婷 | 亚洲欧美日韩网站 | 中文字幕一区二区三区精彩视频 | 国产成人高清成人av片在线看 | 欧美日韩1区 | 精国产品一区二区三区四季综 | 狠狠爱免费视频 | 日韩视频国产 | 日本三级电影在线观看视频 | 欧美日韩精品一区二区三区视频 | 一区二区三区在线观看视频 | 国产精品欧美日韩 | 国产免费又色又爽又黄在线观看 | 亚洲国产精品一区二区www | 久久综合伊人 | 久久久久国产一区二区三区四区 | 精品欧美一区二区三区久久久 | 国产精品免费av | 国产一区二区三区久久 | 日韩视频精品 | 国内毛片毛片毛片毛片 | 久久伊人一区 | 自拍 亚洲 欧美 老师 丝袜 | 亚洲精品亚洲人成人网 | 在线播放亚洲 | 日韩一区二区三区av | 国产精品久久久久9999鸭 | 91资源在线 | 97人人超碰| 在线亚洲精品 | 91国产精品在线 | 在线一级片 | 亚洲日本欧美日韩高观看 | 日韩视频免费在线 | 国产亚洲一级 | 亚洲 中文 欧美 日韩 在线观看 | 久草青青草 | 少妇无套高潮一二三区 | 视频在线观看一区二区 | 日韩一区二区三区在线 | 日韩成人在线免费观看 |