|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2008-12-16 15:03 UTC] max at phoenixweb dot it
[2008-12-16 15:13 UTC] crrodriguez at opensuse dot org
[2008-12-16 15:26 UTC] max at phoenixweb dot it
[2008-12-16 17:57 UTC] jani@php.net
[2008-12-16 18:13 UTC] max at phoenixweb dot it
[2008-12-16 18:25 UTC] mattwil@php.net
[2008-12-17 09:19 UTC] bjori@php.net
[2009-03-17 22:06 UTC] mattwil@php.net
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 20:00:01 2025 UTC |
Description: ------------ The problem is easy. I use SERIALIZE - UNSERIALIZE to pass complex PHP objects between server e store it on remote. However the SERIALIZE - UNSERIALIZE process fail while this happens between a 64bit OS and a 32bit OS, due to a missbehaviour in the number rappresentation (int). For the 64bit the (INT) is the correct data type for the number: 4139868160 while for a 32bit system that numbero can handled only by a (DOUBLE) s:3:"mem";a:2:{s:6:"memory";a:5:{s:5:"total";i:4139868160;s:4:"free";i:1306845184;s:7:"buffers";i:74797056;s:6:"cached";i:2103566336;s:4:"used";i:2833022976;}s:4:"swap";a:3:{s:5:"total";i:8389742592;s:4:"free";i:8389742592;s:4:"used";i:0;}} During the UNSERIALIZE function on the 32bit system the bitcode is lost and the number became negative. Reproduce code: --------------- serialize this object on different OS: [mem] => Array ( [memory] => Array ( [total] => 4139868160 [free] => 1331732480 [buffers] => 68988928 [cached] => 2102939648 [used] => 2808135680 ) [swap] => Array ( [total] => 8389742592 [free] => 8389742592 [used] => 0 ) ) you'll get different SERIALIZED string that are not OS indipendent. Expected result: ---------------- I expected that the object could be pass throug PHP servers indipendently from the OS bit system. Actual result: -------------- The actual result is a serialized string not indipendent from OS, i think i'll use JSON functions instead of serialize / unserialize.