以byte为单位表示的文件大小转化为合适单位表示

WBOY
Freigeben: 2016-07-25 09:10:49
Original
913 Leute haben es durchsucht
看到有人分享了类似这样的代码。分享个支持任意大数,而且相当简单的一段代码。
  1. function formatFileSize($fileSize)
  2. {
  3. $unit = array(' Bytes', ' KB', ' MB', ' GB', ' TB', ' PB', ' EB', ' ZB', ' YB');
  4. $i = 0;
  5. /*
  6. while($fileSize >= 1024 && $i {
  7. $fileSize /= 1024;
  8. ++$i;
  9. }
  10. */
  11. /*
  12. 以上代码还可以优化一下
  13. 由于计算机做乘法比做除法快
  14. */
  15. $inv = 1 / 1024;
  16. while($fileSize >= 1024 && $i {
  17. $fileSize *= $inv;
  18. ++$i;
  19. }
  20. //return sprintf("%.2f", $fileSize) . $unit[$i];
  21. // 改正上一条结果为整数,输出却带两个无意义0的小数位的浮点数
  22. $fileSizeTmp = sprintf("%.2f", $fileSize);
  23. // 以下代码在99.99%的情况下结果会是正确的,除非你使用了"超超大数"。:)
  24. return ($fileSizeTmp - (int)$fileSizeTmp ? $fileSizeTmp : $fileSize) . $unit[$i];
  25. }
复制代码
  1. // 测试代码
  2. echo formatFileSize(43453765345); // 结果: 40.47 GB
  3. echo formatFileSize(4345376534545643543633655244525); // 结果: 3594411.22 YB
  4. echo formatFileSize(2048); // 结果: 2 KB
复制代码


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!