前 次 新10 1- 板 カキコミ
[33]momo 03/12/16 11:10 ID:HxhgZYh.
管理人様、素晴らしいです!!
number_format()の仕組みがよく判らないのと、&$expの"&"の使い方がよく判りません。
確か、参照渡しだった気がするのですが、マニュアルを見てもいまいち判らなかったので手短に説明して頂けませんでしょうか?
#少し整えさせて頂きました。
$num = 300000000000000000000000;
$exp = 0;
$unit = array('B','KB','MB','GB','TB','PB','EB','ZB','YB');
function formatbyte($size, &$exp) {
if ($exp > 7 or $size < 1024) return $size;
$exp++;
return formatbyte($size/1024, $exp);
}
echo number_format(formatbyte($num, $exp), 2, '.', '').$unit[$exp];
#そして、私のソースはこれです。
function AdjustUnit($Num) {
$Unit = Array('B','KB','MB','GB','TB','PB','EB','ZB','YB'); max key is 8.
$Power = ($Num >= 1024) ? Floor(log($Num)/log(1024)) : '0';
if ($Power >= count($Unit)) $Power = 8;
return ($Num >=1024) ? round($Num/(pow(1024,$Power)),2) . $Unit[$Power] : $Num . $Unit[$Power];
}
どうでしょうか?
前 次 カキコミ
r.php ver2.5 (2005/03/28)