64 bit (i8) integers are not parsed by xmlrpc_decode().
Use a string replacement to work around this:
<?php
$xml = str_replace('i8>', 'i4>', $xml);
$decoded_xml = xmlrpc_decode($xml);
?>
xmlrpc_decode
(PHP 4 >= 4.1.0, PHP 5)
xmlrpc_decode — XML をネイティブな PHP 型にデコードする
説明
警告
この関数は、 実験的 なものです。この関数の動作・ 名前・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP のリリースにおいて変更される可能性があります。 この関数は自己責任で使用してください。
パラメータ
- xml
-
XMLRPC メソッドが返す XML レスポンス。
- encoding
-
iconv がサポートする入力エンコーディング (デフォルトは "iso-8859-1")。
返り値
XMLRPC メソッドのレスポンスをもとに作成した、 配列あるいは整数、文字列、boolean 値を返します。
例
xmlrpc_encode_request() の例を参照ください。
xmlrpc_decode
ryon dot sherman at gmail dot com
21-Aug-2009 11:18
21-Aug-2009 11:18
david dot bachelart at polytechnique dot org
18-Jul-2004 03:18
18-Jul-2004 03:18
Be careful with encodings, the xmlrpc-decode function is rather strict. For example, the following response parse returns NULL :
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>a & b</string></value>
</param>
</params>
</methodResponse>
You should use entities :
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>a & b</string></value>
</param>
</params>
</methodResponse>
If your server does not encode responses properly, you may have to process responses before parse.
hfuecks at pinkgoblin dot com
16-Aug-2002 10:57
16-Aug-2002 10:57
Use this with an XML-RPC client to decode a server response into native PHP variables. It will automatically translate the response XML-RPC data types into their PHP equivalents.
This function will return only false is there is any problem with format of the XML it receives.
The HTTP response header will need to be stripped off with something like;
<?php
$xml=(substr($response, strpos($response, "\r\n\r\n")+4));
$phpvars = xmlrpc_decode ($xml);
?>
