Re: Problems with filesize() and large files
| From: | Evan Nemerson | Date: | Mon, 09 Sep 2002 22:26:45 +0000 |
| Subject: | Re: Problems with filesize() and large files | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-115788@lists.php.net to get a copy of this message | ||
Just figure out what the limits of 32-bit integers are. It might be enough to
do something like $num = INT_MAX + abs( INT_MIN - filesize(bigFile) );
I'm not sure if that's the right math, but I hope you get the idea.
If memory serves, what's happening is that the 32nd bit (which represents the
sign- 0='+', 1='-') is getting flipped because you're trying to store 8
bits
of data in 7 bits of space.
On Monday 09 September 2002 15:07, Kurt Glazemakers wrote:
> Hi,
>
> I need the filesize in PHP for very large files, over 2 Gigabyte. The
> problem is that the integer returns the size in byte as an integer. If
> the integer is too big, it returns an negative value.
>
> Is it possible to extend the integer to 64 bit ? Or any other solution,
> to solve this problem ?
>
> Example:
>
> C:\php423\php>php -q c:\devel\filesize.php
> int(-834864026)
>
> Which checks the size of a 3 Gigabyte file.
>
> Many thanks,
>
> Kurt