|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2016-10-31 16:51 UTC] perske at uni-muenster dot de
[2019-09-28 23:45 UTC] perske at uni-muenster dot de
-PHP Version: 7.0.12
+PHP Version: 7.2.21
[2019-09-28 23:45 UTC] perske at uni-muenster dot de
[2020-07-05 00:03 UTC] perske at uni-muenster dot de
[2020-08-13 12:37 UTC] perske at uni-muenster dot de
[2021-01-15 14:23 UTC] cmb@php.net
[2021-01-15 15:03 UTC] perske at uni-muenster dot de
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Nov 05 10:00:02 2025 UTC |
Description: ------------ If a server returns a use integer like in <Serial xsi:type="xsd:integer">8688597941889535165991696066</Serial> The PHP script does not get the complete huge integer but a rounded float like 86885979418895E+27 This is inacceptable for most use cases. To fix, modify ext/soap/php_encoding.c: Replace the line: {{XSD_INTEGER, XSD_INTEGER_STRING, XSD_NAMESPACE, NULL}, to_zval_long, to_xml_long}, with the line {{XSD_INTEGER, XSD_INTEGER_STRING, XSD_NAMESPACE, NULL}, to_zval_stringc, to_xml_string}, The same should be done with these lines: {{XSD_NONPOSITIVEINTEGER, XSD_NONPOSITIVEINTEGER_STRING, XSD_NAMESPACE, NULL}, to_zval_long, to_xml_long}, {{XSD_POSITIVEINTEGER, XSD_POSITIVEINTEGER_STRING, XSD_NAMESPACE, NULL}, to_zval_long, to_xml_long}, {{XSD_NONNEGATIVEINTEGER, XSD_NONNEGATIVEINTEGER_STRING, XSD_NAMESPACE, NULL}, to_zval_long, to_xml_long}, {{XSD_NEGATIVEINTEGER, XSD_NEGATIVEINTEGER_STRING, XSD_NAMESPACE, NULL}, to_zval_long, to_xml_long}, {{XSD_INTEGER, XSD_INTEGER_STRING, XSD_NAMESPACE, NULL}, to_zval_long, to_xml_long}, Test script: --------------- n/a