【发布时间】:2018-11-22 19:59:30
【问题描述】:
在认为我的错误之后,
我发现很多脚本都是这样做的: https://gist.github.com/liunian/9338301
S.O. 这里有好几个。我用过,但有同样烦人的“B”作为尺寸。
当我切换到 php v7.xxx 时,这个问题似乎抬起了它的丑陋脑袋 第一个问题是我必须输入一个浮点数(或双精度数),否则我会得到一个 “遇到格式不正确的数值” 经过一番研究,显然这是NOT a bug。至少我是这么读的。
所以在输入之后,错误消失了,但返回的值始终是“B” 文件大小 = 87.5B(应该是 MB 或 GB)。
我很确定 Javascript 可以工作,但宁愿用 php 保留它。
感谢观看
当前仅生成“B”的实时脚本
public function readableBytes($size, $type='pc') { //ignore the pc - it is for something else - disabled for debugging
$size = (double)$size;
static $units = array('B','kB','MB','GB','TB','PB','EB','ZB','YB');
$step = 1024;
$i = 0;
while (($size / $step) > 0.9) {
$size = $size / $step;
$i++;
}
return round($size, 2).$units[$i];
}// function readbbleBytes
【问题讨论】:
-
我试过了,好像还能生产其他东西-
echo readableBytes(1000000);->0.95MB -
您使用的是哪个版本的 PHP,在哪个操作系统上(包括 wordsize - 32 或 64 位),如果您在函数的第一行
var_dump($size);会显示什么?跨度> -
此处无法重现。您输入的
$size数据是什么? -
对我也很好
标签: php