Edit report at https://bugs.php.net/bug.php?id=63193&edit=1

 ID:                 63193
 Updated by:         [email protected]
 Reported by:        jan dot winkler at adspirit dot de
 Summary:            json_decode procudes wrong int values
 Status:             Not a bug
 Type:               Bug
 Package:            JSON related
 Operating System:   linux
 PHP Version:        5.2.6
 Block user comment: N
 Private report:     N

 New Comment:

That's a really old PHP. I tested your code on 5.3.x and 5.4.x and it works 
fine 
on 64-bit machines. I don't have a 2008 build around anywhere.


Previous Comments:
------------------------------------------------------------------------
[2012-10-02 09:43:31] jan dot winkler at adspirit dot de

OS: 64 bit, redhat kernel 2.6.18-274.12.1.el5

------------------------------------------------------------------------
[2012-10-02 09:38:13] jan dot winkler at adspirit dot de

Here is php info:




Version 5.2.6
 




System 

Linux ds92-51-187-2 2.6.18-274.12.1.el5 #1 SMP Tue Nov 8 21:37:35 EST 2011 
x86_64 



Build Date 

Aug 14 2008 12:38:42 



Configure Command 

'./configure' '--host=x86_64-redhat-linux-gnu' 
'--build=x86_64-redhat-linux-gnu' '--target=x86_64-redhat-linux' 
'--prefix=/opt/HE' '--exec-prefix=/opt/HE' '--bindir=/opt/HE/bin' 
'--sbindir=/opt/HE/sbin' '--sysconfdir=/opt/HE/etc' '--datadir=/opt/HE/share' 
'--includedir=/opt/HE/include' '--libdir=/opt/HE/lib64' 
'--libexecdir=/opt/HE/libexec' '--localstatedir=/opt/HE/var' 
'--sharedstatedir=/opt/HE/com' '--mandir=/opt/HE/man' '--infodir=/opt/HE/info' 
'--with-libdir=lib64' '--with-config-file-scan-dir=/opt/HE/etc/php.d' 
'--with-config-file-path=/opt/HE/etc' '--disable-debug' '--enable-magic-quotes' 
'--enable-libxml' '--enable-session' '--enable-simplexml' '--enable-spl' 
'--enable-xml' '--enable-zend-multibyte' '--enable-filter' '--enable-libgcc' 
'--with-pcre-regex' '--enable-sigchild' '--with-regex=php' 
'--enable-inline-optimization' '--with-zlib' '--with-zlib-dir=/usr/lib64' 
'--with-apxs2' '--disable-all' '--disable-cli' 



Server API 

Apache 2.0 Handler 



Virtual Directory Support 

disabled 



Configuration File (php.ini) Path 

/opt/HE/etc 



Loaded Configuration File 

/opt/HE/etc/php.ini 



Scan this dir for additional .ini files 

/opt/HE/etc/php.d 



additional .ini files parsed 

/opt/HE/etc/php.d/curl.ini, /opt/HE/etc/php.d/exif.ini, 
/opt/HE/etc/php.d/ftp.ini, /opt/HE/etc/php.d/gd.ini, 
/opt/HE/etc/php.d/iconv.ini, /opt/HE/etc/php.d/json.ini, 
/opt/HE/etc/php.d/memcache.ini, /opt/HE/etc/php.d/mysql.ini, 
/opt/HE/etc/php.d/mysqli.ini, /opt/HE/etc/php.d/openssl.ini, 
/opt/HE/etc/php.d/pdo.ini, /opt/HE/etc/php.d/pdo_mysql.ini, 
/opt/HE/etc/php.d/rar.ini, /opt/HE/etc/php.d/soap.ini, 
/opt/HE/etc/php.d/sockets.ini, /opt/HE/etc/php.d/xcache.ini, 
/opt/HE/etc/php.d/zip.ini 



PHP API 

20041225 



PHP Extension 

20060613 



Zend Extension 

220060519 



Debug Build 

no 



Thread Safety 

disabled 



Zend Memory Manager 

enabled 



IPv6 Support 

enabled 



Registered PHP Streams 

php, file, data, http, ftp, compress.zlib, https, ftps, zip 



Registered Stream Socket Transports 

tcp, udp, unix, udg, ssl, sslv3, sslv2, tls 



Registered Stream Filters 

string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, 
consumed, zlib.*, convert.iconv.* 


json
json support enabled 
json version 1.2.1

------------------------------------------------------------------------
[2012-10-01 15:49:03] [email protected]

Works fine on 64-bit machines. Not much we can do about this.

------------------------------------------------------------------------
[2012-10-01 15:26:36] [email protected]

do you run with a 32-bit OS?

------------------------------------------------------------------------
[2012-10-01 13:03:06] jan dot winkler at adspirit dot de

Description:
------------
the following code produces a wrong number when decoded:

$a = array('a'=>5584842151736052644);
$x = json_encode($a);
print_r(json_decode($x));

... will output stdClass Object ( [a] => 5584842151736052736 ) instead of 
5584842151736052644

Test script:
---------------
$a = array('a'=>5584842151736052644);
$x = json_encode($a);
print_r(json_decode($x));

Expected result:
----------------
json_decode should output stdClass Object ( [a] => 5584842151736052644 )

Actual result:
--------------
stdClass Object ( [a] => 5584842151736052736 )


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=63193&edit=1

Reply via email to