以byte为单位表示的文件大小转化为合适单位表示
Freigeben: 2016-07-25 09:10:49
Original
913 Leute haben es durchsucht
看到有人分享了类似这样的代码。分享个支持任意大数,而且相当简单的一段代码。
- function formatFileSize($fileSize)
- {
- $unit = array(' Bytes', ' KB', ' MB', ' GB', ' TB', ' PB', ' EB', ' ZB', ' YB');
- $i = 0;
-
- /*
- while($fileSize >= 1024 && $i {
- $fileSize /= 1024;
- ++$i;
- }
- */
-
- /*
- 以上代码还可以优化一下
- 由于计算机做乘法比做除法快
- */
- $inv = 1 / 1024;
-
- while($fileSize >= 1024 && $i {
- $fileSize *= $inv;
- ++$i;
- }
-
- //return sprintf("%.2f", $fileSize) . $unit[$i];
-
- // 改正上一条结果为整数,输出却带两个无意义0的小数位的浮点数
- $fileSizeTmp = sprintf("%.2f", $fileSize);
-
- // 以下代码在99.99%的情况下结果会是正确的,除非你使用了"超超大数"。:)
- return ($fileSizeTmp - (int)$fileSizeTmp ? $fileSizeTmp : $fileSize) . $unit[$i];
- }
复制代码
- // 测试代码
- echo formatFileSize(43453765345); // 结果: 40.47 GB
-
- echo formatFileSize(4345376534545643543633655244525); // 结果: 3594411.22 YB
-
- echo formatFileSize(2048); // 结果: 2 KB
复制代码
|
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
Neueste Artikel des Autors
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31