亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP文件大小格式化函數合集

2024-09-04 11:43:25
字體:
來源:轉載
供稿:網友

php中有一個系統自帶的計算文件大小的函數,就是filesize(),但是這個函數是以字節為單位的,在一些情況下,我們需要很直觀的了解一個文件大小,就不僅僅需要字節B這個單位了,還需要KB,MB,GB,甚至更大TB,PB,所以我們需要自己寫一些函數來格式化filesize()的輸出結果。

比如碰到一個很大的文件有49957289167B,大家一看這么一長串的數字后面單位是字節B,還是不知道這個文件的大小是一個什么概念,我們把它轉換成GB為單位,就是46.53GB。用下面這些函數就可以完成這個工作:

  1. //轉換單位 
  2. function setupSize($fileSize) { 
  3.     $size = sprintf("%u"$fileSize); 
  4.     if($size == 0) { 
  5.          return("0 Bytes"); 
  6.     } 
  7.     $sizename = array(" Bytes"" KB"" MB"" GB"" TB"" PB"" EB"" ZB"" YB"); 
  8.     return round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizename[$i]; 
  9. function byte_format($size$dec=2){ 
  10.     $a = array("B""KB""MB""GB""TB""PB"); 
  11.     $pos = 0; 
  12.     while ($size >= 1024) { 
  13.          $size /= 1024; 
  14.            $pos++; 
  15.     } 
  16.     return round($size,$dec)." ".$a[$pos]; 
  17.  } 
  18. /* Use : echo format_size(filesize("fichier")); 
  19. Example result : 13,37 Ko */ 
  20.  
  21. function format_size($o) { 
  22.     $size = array('Go' => 1073741824, 'Mo' => 1048576, 'Ko' => 1024, 'octets' => 1); 
  23.     foreach ($size as $k => $v
  24.         if ($o >= $v) { 
  25.                 if ($k == 'octets'
  26.                         return round($o).' '.$k
  27.                 return number_format($o / $v, 2, ','' ').' '.$k
  28.         } 
  29. /** 
  30.  * 文件大小格式化 
  31.  * @param integer $size 初始文件大小,單位為byte 
  32.  * @return array 格式化后的文件大小和單位數組,單位為byte、KB、MB、GB、TB 
  33.  */ 
  34. function file_size_format($size = 0, $dec = 2) { 
  35.     $unit = array("B""KB""MB""GB""TB""PB"); 
  36.     $pos = 0; 
  37.     while ($size >= 1024) { 
  38.         $size /= 1024; 
  39.         $pos++; 
  40.     } 
  41.     $result['size'] = round($size$dec); 
  42.     $result['unit'] = $unit[$pos]; 
  43.     return $result['size'].$result['unit']; 
  44. echo file_size_format(123456789); 
  45.  
  46. /** 
  47.  * 文件大小單位格式化 
  48.  * @param $bytes 文件實際大小,單位byte 
  49.  * @param $prec 轉換后精確度,默認精確到小數點后兩位 
  50.  * @return 轉換后的大小+單位的字符串 
  51.  */ 
  52.  function fsizeformat($bytes,$prec=2){ 
  53.     $rank=0; 
  54.     $size=$bytes
  55.     $unit="B"
  56.     while($size>1024){ 
  57.         $size=$size/1024; 
  58.         $rank++; 
  59.     } 
  60.     $size=round($size,$prec); 
  61.     switch ($rank){ 
  62.         case "1"
  63.             $unit="KB"
  64.             break
  65.         case "2"
  66.             $unit="MB"
  67.             break
  68.         case "3"
  69.             $unit="GB"
  70.             break
  71.         case "4"
  72.             $unit="TB"
  73.             break
  74.         default : 
  75.  
  76.     } 
  77.     return $size." ".$unit
  78.  } 
  79.  
  80. /**  
  81.  *  容量格式化  
  82.  * @param String   文件名(文件路徑)  
  83.  * @return  如果文件存在返回格式化的字符串 如果錯誤返回錯誤信息  Unknown File  
  84.  */   
  85. function sizeFormat ($fileName){   
  86.     //獲取文件的大小   
  87.     @ $filesize=filesize($fileName);   
  88.     //如果文件不存在返回錯誤信息   
  89.     if(false==$filesize){   
  90.        return 'Unknown File';   
  91.     } 
  92.     //格式化文件容量信息   
  93.     if ($filesize >= 1073741824) $filesize = round($filesize / 1073741824 * 100) / 100 . ' GB';   
  94.     elseif ($filesize >= 1048576) $filesize = round($filesize / 1048576 * 100) / 100 . ' MB';   
  95.     elseif ($filesize >= 1024) $filesize = round($filesize / 1024 * 100) / 100 . ' KB';   
  96.     else $filesize = $filesize . ' Bytes';   
  97.     return $filesize;   
  98. //測試函數   
  99. echo sizeFormat('config.inc.php');   
  100.  
  101. /** 
  102.   * 文件大小格式化 
  103.   * @param type $filesize 
  104.   */ 
  105. private function sizeCount($filesize
  106.     if ($filesize >= 1073741824) { 
  107.         $filesize = round($filesize / 1073741824 * 100) / 100 . ' GB'
  108.     }  
  109.  
  110.     else if ($filesize >= 1048576) { 
  111.         $filesize = round($filesize / 1048576 * 100) / 100 . ' MB'
  112.     }  
  113.  
  114.     else if ($filesize >= 1024) { 
  115.         $filesize = round($filesize / 1024 * 100) / 100 . ' KB'
  116.     } 
  117.  
  118.     return $filesize
  119.  
  120.  
  121. //該函數最主要的是根據文件的字節數,判斷應當選擇的統計單位,也就是說一個文件用某一單位比如MB,那么該文件肯定小于1GB,否則當然要用GB作為單位了,而且文件要大于KB,不然的話得用更小的單位統計。該函數代碼如下 
  122.  
  123. //size()  統計文件大小 
  124. function size($byte
  125.     if($byte < 1024) { 
  126.       $unit="B"
  127.     } 
  128.     else if($byte < 10240) { 
  129.       $byte=round_dp($byte/1024, 2); 
  130.       $unit="KB"
  131.     } 
  132.     else if($byte < 102400) { 
  133.       $byte=round_dp($byte/1024, 2); 
  134.       $unit="KB"
  135.     } 
  136.     else if($byte < 1048576) { 
  137.       $byte=round_dp($byte/1024, 2); 
  138.       $unit="KB"
  139.     } 
  140.     else if ($byte < 10485760) { 
  141.       $byte=round_dp($byte/1048576, 2); 
  142.       $unit="MB"
  143.     } 
  144.     else if ($byte < 104857600) { 
  145.       $byte=round_dp($byte/1048576,2); 
  146.       $unit="MB"
  147.     } 
  148.     else if ($byte < 1073741824) { 
  149.       $byte=round_dp($byte/1048576, 2); 
  150.       $unit="MB"
  151.     } 
  152.     else { 
  153.       $byte=round_dp($byte/1073741824, 2); 
  154.       $unit="GB"
  155.     } 
  156.  
  157.     $byte .= $unit
  158.     return $byte
  159. //Vevb.com 
  160. //輔助函數 round_up(),該函數用來取舍小數點位數的,四舍五入。 
  161. function round_dp($num , $dp
  162.   $sh = pow(10 , $dp); 
  163.   return (round($num*$sh)/$sh); 

這樣我們就能很好額統計任何一個文件的大小了,首先通過系統自帶的filesize()函數獲得文件的字節數,再用上面的這些函數換算成適當的單位就可以了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美亚洲范冰冰与中字| 久久久精品电影| 日韩av毛片网| 日韩美女激情视频| 亚洲精品成人免费| 色偷偷9999www| 久久久久久国产| 国产精品xxx视频| 欧美夫妻性生活xx| 一本一本久久a久久精品综合小说| 欧美一级片一区| 精品高清一区二区三区| 色综合视频一区中文字幕| 青青久久aⅴ北条麻妃| 成人性教育视频在线观看| 亚洲欧美日韩精品久久亚洲区| 国产一区二区美女视频| 亚洲欧洲一区二区三区久久| 久久久久国产一区二区三区| 欧美性资源免费| 欧美精品18videos性欧| 人九九综合九九宗合| 欧美国产在线电影| 欧美极品欧美精品欧美视频| 国产亚洲人成a一在线v站| 国产精品极品美女在线观看免费| 91啪国产在线| 日韩中文字幕在线播放| 久久久久久久久久久成人| 亚洲成人国产精品| 国产美女扒开尿口久久久| 搡老女人一区二区三区视频tv| 欧美特级www| 久久精品国产2020观看福利| 久久亚洲影音av资源网| 国内自拍欧美激情| 日韩欧亚中文在线| 亚洲一区二区在线| 国产欧美精品久久久| 色婷婷av一区二区三区在线观看| 欧美日韩成人精品| 欧亚精品在线观看| 国产精品xxxxx| 国产日韩精品在线| 国产成人精品优优av| 国产深夜精品福利| 国产精品视频中文字幕91| 日韩成人黄色av| 亚洲女人初尝黑人巨大| 97视频在线观看播放| 色综合天天综合网国产成人网| 日韩中文字幕网站| 久久视频免费在线播放| 国产一级揄自揄精品视频| 国产精品久久久亚洲| 亚洲欧美另类中文字幕| 亚洲人线精品午夜| 欧美伊久线香蕉线新在线| 国产成人精品免高潮在线观看| 欧美视频中文字幕在线| 久久精品久久久久电影| 亚洲色图欧美制服丝袜另类第一页| 九九久久久久久久久激情| 国产精品私拍pans大尺度在线| 最近2019年手机中文字幕| 亚洲伦理中文字幕| 国产精品久久久久久一区二区| 欧美激情第三页| 久久久久久12| 日韩在线视频二区| 欧美刺激性大交免费视频| 国产精品扒开腿做| 国产成人在线精品| 久久香蕉国产线看观看av| 国产精品video| 欧美大成色www永久网站婷| 精品香蕉一区二区三区| 亚洲国产精品久久久久| 理论片在线不卡免费观看| 亚洲免费伊人电影在线观看av| 国产亚洲精品成人av久久ww| 欧美日韩亚洲视频一区| 欧美另类在线播放| 久久久久久久久久国产| 亚洲精品福利视频| 色天天综合狠狠色| 中文.日本.精品| 久久成人免费视频| 久久精品视频一| 亚洲女同性videos| 精品久久中文字幕久久av| 日本成人精品在线| 欧美日韩亚洲一区二区三区| 国产精品色午夜在线观看| 亚洲国产91精品在线观看| 欧美小视频在线| 91av在线视频观看| 自拍偷拍亚洲精品| 精品久久久久久久久久久久久| 日韩欧美在线网址| 亚洲在线视频福利| 热久久这里只有| 精品欧美国产一区二区三区| 国产精品中文字幕久久久| 亚洲大胆人体视频| 国产91精品黑色丝袜高跟鞋| 日产精品99久久久久久| 国产精品人人做人人爽| 精品国产乱码久久久久久天美| 欧洲美女7788成人免费视频| 亚洲女人被黑人巨大进入al| 欧美日本啪啪无遮挡网站| 亚洲欧美中文另类| 成人久久久久久| 亚洲精品小视频在线观看| 精品国产乱码久久久久酒店| 91在线无精精品一区二区| 欧美xxxx18国产| 成人黄在线观看| 国产亚洲精品久久久优势| 欧美限制级电影在线观看| 高清日韩电视剧大全免费播放在线观看| 一区二区三区视频免费在线观看| 久久色免费在线视频| 国产精品久久久久免费a∨| 国产免费久久av| 国内精品久久久久| 久久精品色欧美aⅴ一区二区| 久久精品久久久久久国产 免费| 亚洲欧美中文字幕| 亚洲女人天堂色在线7777| 亚洲精品国产精品自产a区红杏吧| 一区二区欧美激情| 国产精品久久久久久久久免费| 国产精品久久久久久久7电影| 黄色一区二区三区| 欧美精品日韩www.p站| 午夜精品一区二区三区在线| 欧美在线视频免费观看| 日韩在线观看免费高清| 久久这里只有精品视频首页| 91精品国产91久久久久久吃药| 中文欧美在线视频| 成人国产精品日本在线| 亚洲奶大毛多的老太婆| 国产不卡一区二区在线播放| 国产视频精品免费播放| 中文字幕日本精品| 欧美日韩色婷婷| 在线看国产精品| 成人女保姆的销魂服务| 欧美视频一区二区三区…| 国产99久久精品一区二区 夜夜躁日日躁| 亚洲最新av在线| 久久中文字幕国产| 亚洲午夜精品久久久久久性色| 亚洲国产精品专区久久| 国产99视频在线观看| 国产精品美女www| 欧美激情在线播放| 欧美成人一区在线| 欧洲成人午夜免费大片| 亚洲综合在线小说| 久久国产一区二区三区|