On Fri, 24 Dec 2004 04:15:10 -0500, Sebastian
<[EMAIL PROTECTED]> wrote:
> i made this function and want to know if i am doing the math correctly..
> seems to be caculating ok.. $filesize is in bytes.. if the filesize is under
> 1MB i want to show KBs, if its under 1GB i want to show MB, if its over
> 1000MB i want to show GB, makes sense? ;)
> 
> function byte_format($filesize)
> {
>     if ($filesize < 1000000)
>     {
>          return number_format($filesize / 1024, 2, '.', '') . ' KB';
>     }
>     else if($filesize > 1000000000)
>     {
>         return number_format($filesize / 1024 / 1024 / 1024, 2, '.', '') .
> ' GB';
>     }
>     else
>     {
>        return number_format($filesize / 1024 / 1024, 2, '.', '') . ' MB';
>     }
> }

Seems overly complex.  Why not something like:

$file_name = "/path/to/file";
$file_type = array( 'K', 'M', 'G' );
$size = filesize ( $file_name );
for ( $t = 0; $size > 1024; $t++ )
{
    $size /= 1024;
    $file_size = round ( $size, 1 ) . ' ' . $file_type[ $t ] . 'B';
}
echo "\$file_size = $file_size";


-- 
Greg Donald
Zend Certified Engineer
http://gdconsultants.com/
http://destiney.com/

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to