From: James Crow on 3 May 2010 16:56 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
From: Pierre Joye on 3 May 2010 18:21 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(a)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
|
Pages: 1 Prev: Hoping to add a site search to my TAXA website Next: how to access class members |