From: [EMAIL PROTECTED]
Operating system: Red Hat Linux 8.0
PHP version: 4.2.3
PHP Bug Type: XMLRPC-EPI related
Bug description: xmlrpc_encode_request does not maintain keys of non-zero-indexed
arrays
When I run a sequence such as:
$test = array(1234 => 5, 5678 => 2);
$rpc = xmlrpc_encode_request("method", $test);
print $rpc;
the XMLRPC extension does not observe the non-zero-indexed nature of the
array and produces a request such as:
<?xml version="1.0" encoding="iso-8859-1" ?>
- <methodCall>
<methodName>method</methodName>
- <params>
- <param>
- <value>
<int>5</int>
</value>
</param>
- <param>
- <value>
<int>2</int>
</value>
</param>
</params>
</methodCall>
At the other end, this decodes to:
array(0 => 5, 1 => 2)
which is not the same as the original data passed. The same occurs when
using string types using numeric values as the array keys, eg.
array("1234" => 5, "5678" => 2)
or by using settype(... "string") on the array keys.
I believe that the XMLRPC extension should generate a <struct> for arrays
such as this, so that the number key to value mapping can be preserved.
Regards,
Chris.
--
Edit bug report at http://bugs.php.net/?id=21949&edit=1
--
Try a CVS snapshot: http://bugs.php.net/fix.php?id=21949&r=trysnapshot
Fixed in CVS: http://bugs.php.net/fix.php?id=21949&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=21949&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=21949&r=needtrace
Try newer version: http://bugs.php.net/fix.php?id=21949&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=21949&r=support
Expected behavior: http://bugs.php.net/fix.php?id=21949&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=21949&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=21949&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=21949&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=21949&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=21949&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=21949&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=21949&r=gnused