|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2009-03-11 14:49 UTC] akshah123 at hotmail dot com
Description: ------------ It seems that instead of string, new version of PHP (5.2.9) has <key xsi:type="xsd:int">884385070380</key> as opposed to for old version of PHP (5.2.2) returning <key xsi:type="xsd:string">884385070380</key> for arrays in SOAP services. This causes the client to throw a soap fault error with "SOAP-ERROR: Encoding: Can't decode apache map, only Strings or Longs are allowd as keys". Patchesbug47624.patch (last revision 2014-05-07 13:58 UTC by nbk at sitadelle dot com)Pull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Oct 24 09:00:01 2025 UTC |
I've made some tests with recent PHP versions (5.6.11 and 7.0.0beta1). On architectures where a PHP integer is 64bit, the argument has type xsd:int in the request envelope. This is clearly wrong, as xsd:int is a 32bit integer; it should be xsd:long. Where a PHP integer is 32bit, the argument has type xsd:float, what is not necessarly wrong per se. So much about the client. The server obviously can't deal with xsd:float here. On 5.6.11 Win x86, the error that has been reported is thrown; on 7.0.0beta1 Win x86 PHP crashes. When the argument is encoded as xsd:int, we see an overflow (3916774700) (PHP 7.0.0beta1 on Win x64 and PHP 5.6.11 on Linux x64), whereby PHP 5.6.11 additionally raises "Function ("getAssetPathInfo") is not a valid method for this service)". Only PHP 7 on Linux x64 yields the "expected" result. Related to bug #48717.