1

このコードはファイルのサイズを読み取りますが、1.759864Mb のファイルの出力は 1Mb になるので、2Mb にしたいと思います。ちょっとしたことを変えることだとはわかっていますが、それが何であるかを見つけることができません...

function Size($path)
{
    $bytes = sprintf('%u', filesize($path));
    if ($bytes > 0)
    {
        $unit = intval(log($bytes, 1024));
        $units = array('B', 'Kb', 'Mb', 'Gb');

        if (array_key_exists($unit, $units) === true)
        {
            return sprintf('%d %s', $bytes / pow(1024, $unit), $units[$unit]);
        }
    }
    return $bytes;
}
4

3 に答える 3

3

そのはず

return sprintf('%d %s', ceil($bytes / pow(1024, $unit)), $units[$unit]);

ceil必要に応じて値を切り上げて、次に大きい整数値を返します。

于 2012-07-22T15:46:06.800 に答える
0
ceil($bytes / pow(1024, $unit));
于 2012-07-22T15:47:42.110 に答える
0

丸め (%d を使用) を行う 代わりに、 PHPround関数を使用することをお勧めします。sprintf

return sprintf('%d %s', round($bytes / pow(1024, $unit)), $units[$unit]);
于 2012-07-22T15:49:38.860 に答える