PHP檔案大小格式化函式合集

2022-08-01 18:24:11 字數 2617 閱讀 2604

比如碰到乙個很大的檔案有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 檔案大小大於或等...