比如碰到乙個很大的檔案有49957289167b,大家一看這麼一長串的數字後面單位是位元組b,還是不知道這個檔案的大小是乙個什麼概念,我們把它轉換成gb為單位,就是46.53gb。用下面這些函式就可以完成這個工作:
**如下:
//轉換單位
function setupsize($filesize)
$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)
return round($size,$dec)." ".$a[$pos];
}/* use : echo format_size(filesize("fichier"));
example result : 13,37 ko */
function format_size($o)
}/**
* 檔案大小格式化
* @param integer $size 初始檔案大小,單位為byte
* @return array 格式化後的檔案大小和單位陣列,單位為byte、kb、mb、gb、tb
*/function file_size_format($size = 0, $dec = 2)
$result['size'] = round($size, $dec);
$result['unit'] = $unit[$pos];
return $result['size'].$result['unit'];
}echo file_size_format(123456789);
/*** 檔案大小單位格式化
* @param $bytes 檔案實際大小,單位byte
* @param $prec 轉換後精確度,預設精確到小數點後兩位
* @return 轉換後的大小+單位的字串
*/function fsizeformat($bytes,$prec=2)
$size=round($size,$prec);
switch ($rank)
return $size." ".$unit;
}/**
* 容量格式化
* @param string 檔名(檔案路徑)
* @return 如果檔案存在返回格式化的字串 如果錯誤返回錯誤資訊 unknown file
*/
function sizeformat ($filename)
//格式化檔案容量資訊
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;
}//測試函式
echo sizeformat('config.inc.php');
/*** 檔案大小格式化
* @param type $filesize
*/private function sizecount($filesize)
else if ($filesize >= 1048576)
else if ($filesize >= 1024)
return $filesize;
}//該函式最主要的是根據檔案的位元組數,判斷應當選擇的統計單位,也就是說乙個檔案用某一單位比如mb,那麼該檔案肯定小於1gb,否則當然要用gb作為單位了,而且檔案要大於kb,不然的話得用更小的單位統計。該函式**如下
//size() 統計檔案大小
function size($byte)
else if($byte < 10240)
else if($byte < 102400)
else if($byte < 1048576)
else if ($byte < 10485760)
else if ($byte < 104857600)
else if ($byte < 1073741824)
else
$byte .= $unit;
return $byte;
}//輔助函式 round_up(),該函式用來取捨小數點位數的,四捨五入。
function round_dp($num , $dp)
這樣我們就能很好額統計任何乙個檔案的大小了,首先通過系統自帶的filesize()函式獲得檔案的位元組數,再用上面的這些函式換算成適當的單位就可以了
檔案大小格式化(JS)
檔案大小獲取到的是以b 位元組 為單位,在頁面上顯示時,需要先格式化一下。一開始用的是if.else.幸好實際中檔案大小頂多達到t級,進行4次判斷就可以了。但這終究不是個好方法,琢磨著可以迴圈來實現。先了解下進製間的轉換規則 1 b 2 10 0 b 1 k 210 1 b 1 m 210 k 21...
PHP格式化顯示檔案大小函式
用filesize 函式可以返回檔案的大小,可是返回值是以位元組 b 為單位的,看起來不方便。怎麼讓它根據檔案的大小自動以kb mb gb為單位顯示呢,用下面這個函式就可以實現了。格式化檔案大小顯示 param int size return string function format size ...
C 格式化檔案大小
使用c 的方式格式化檔案大小,如下 格式化檔案大小的c 方法 檔案的大小,傳入的是乙個bytes為單位的引數 格式化後的值 private static string getfilesize long filesize else if filesize 1024 1024 1024 檔案大小大於或等...