@@ 972-1003 (lines=32) @@ | ||
969 | * @param object |
|
970 | * @return array |
|
971 | */ |
|
972 | public function xmlrpc_decoder($xmlrpc_val) |
|
973 | { |
|
974 | $kind = $xmlrpc_val->kindOf(); |
|
975 | ||
976 | if ($kind === 'scalar') |
|
977 | { |
|
978 | return $xmlrpc_val->scalarval(); |
|
979 | } |
|
980 | elseif ($kind === 'array') |
|
981 | { |
|
982 | reset($xmlrpc_val->me); |
|
983 | $b = current($xmlrpc_val->me); |
|
984 | $arr = array(); |
|
985 | ||
986 | for ($i = 0, $size = count($b); $i < $size; $i++) |
|
987 | { |
|
988 | $arr[] = $this->xmlrpc_decoder($xmlrpc_val->me['array'][$i]); |
|
989 | } |
|
990 | return $arr; |
|
991 | } |
|
992 | elseif ($kind === 'struct') |
|
993 | { |
|
994 | reset($xmlrpc_val->me['struct']); |
|
995 | $arr = array(); |
|
996 | ||
997 | while (list($key,$value) = each($xmlrpc_val->me['struct'])) |
|
998 | { |
|
999 | $arr[$key] = $this->xmlrpc_decoder($value); |
|
1000 | } |
|
1001 | return $arr; |
|
1002 | } |
|
1003 | } |
|
1004 | ||
1005 | // -------------------------------------------------------------------- |
|
1006 | ||
@@ 1610-1643 (lines=34) @@ | ||
1607 | * @param object |
|
1608 | * @return mixed |
|
1609 | */ |
|
1610 | public function decode_message($param) |
|
1611 | { |
|
1612 | $kind = $param->kindOf(); |
|
1613 | ||
1614 | if ($kind === 'scalar') |
|
1615 | { |
|
1616 | return $param->scalarval(); |
|
1617 | } |
|
1618 | elseif ($kind === 'array') |
|
1619 | { |
|
1620 | reset($param->me); |
|
1621 | $b = current($param->me); |
|
1622 | $arr = array(); |
|
1623 | ||
1624 | for ($i = 0, $c = count($b); $i < $c; $i++) |
|
1625 | { |
|
1626 | $arr[] = $this->decode_message($param->me['array'][$i]); |
|
1627 | } |
|
1628 | ||
1629 | return $arr; |
|
1630 | } |
|
1631 | elseif ($kind === 'struct') |
|
1632 | { |
|
1633 | reset($param->me['struct']); |
|
1634 | $arr = array(); |
|
1635 | ||
1636 | while (list($key,$value) = each($param->me['struct'])) |
|
1637 | { |
|
1638 | $arr[$key] = $this->decode_message($value); |
|
1639 | } |
|
1640 | ||
1641 | return $arr; |
|
1642 | } |
|
1643 | } |
|
1644 | ||
1645 | } // END XML_RPC_Message Class |
|
1646 |