public function xmlrpc_decoder($xmlrpc_val)
{
$kind = $xmlrpc_val->kindOf();
if ($kind === 'scalar') {
return $xmlrpc_val->scalarval();
} elseif ($kind === 'array') {
reset($xmlrpc_val->me);
$b = current($xmlrpc_val->me);
$arr = array();
for ($i = 0, $size = count($b); $i < $size; $i++) {
$arr[] = $this->xmlrpc_decoder($xmlrpc_val->me['array'][$i]);
}
return $arr;
} elseif ($kind === 'struct') {
reset($xmlrpc_val->me['struct']);
$arr = array();
while (list($key, $value) = each($xmlrpc_val->me['struct'])) {
$arr[$key] = $this->xmlrpc_decoder($value);
}
return $arr;
}
}