RE: [PHP] Problems with filesize() and large files
| From: | Kurt Glazemakers | Date: | Mon, 09 Sep 2002 22:34:10 +0000 |
| Subject: | RE: [PHP] Problems with filesize() and large files | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-115789@lists.php.net to get a copy of this message | ||
Yep,
I was thinking about a similar solution, but if the file exceeds the 4
Gigabyte limit, the solution won't help anymore. And it wil be a matter
of time to exceed this limit.
But I'm afraid there is no other solution for this.
Kurt
-----Original Message-----
From: Evan Nemerson [mailto:evan@coeus-group.com]
Sent: Tuesday, September 10, 2002 12:27 AM
To: Kurt Glazemakers; php-general@lists.php.net
Subject: Re: [PHP] Problems with filesize() and large files
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