Re: serialize/unserialize and 32/64 bit integers
| From: | Pierre Joye | Date: | Mon, 03 May 2010 22:21:12 +0000 |
| Subject: | Re: serialize/unserialize and 32/64 bit integers | ||
| References: | 1 | Groups: | php.windows |
| Request: | Send a blank email to php-windows+get-30068@lists.php.net to get a copy of this message | ||
hi James,
For the record: unlike the waste majority of unices, Windows x64
maximum integer in PHP (which uses the long C type ) is always 32bit,
signed (2^31 +/-).
Are you sure that you get s:10:"2600001234"? Using the latest 5.2 I
got: d:2600001234; (windows)
However, serialize is not supposed to be used to share data across
different hosts as the format can be architecture dependent. I would
suggest to use json instead, if your goal is to share data across
hosts.
Cheers,
On Mon, May 3, 2010 at 10:56 PM, James Crow <james@ultratans.com> wrote:
> Hello,
>
> I am having a problem with unserializing integers with Windows XP/PHP
> 5.2.11. The serialization takes place on a Linux x86_64 host. The values
> then gets passed to the Windows machine that is 32 bit. I think the problem
> is 32/64 bit related. If I serialize a number say 2600001234 on 32 bit
> Windows it becomes s:10:"2600001234". If I do the same from 64 bit Linux it
> becomes i:2600001234.
> Is there a way to force it to serialize as a string on 64 bit PHP? If it
> matters this is an index of an array.
>
> Thanks,
> James
>
>
> --
> PHP Windows Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
--
Pierre
@pierrejoye | http://blog.thepimp.net | http://www.libgd.org