| @@ 546-579 (lines=34) @@ | ||
| 543 | /** |
|
| 544 | * @param integer $xmlrpc_val |
|
| 545 | */ |
|
| 546 | function xmlrpc_decoder($xmlrpc_val) |
|
| 547 | { |
|
| 548 | $kind = $xmlrpc_val->kindOf(); |
|
| 549 | ||
| 550 | if ($kind == 'scalar') |
|
| 551 | { |
|
| 552 | return $xmlrpc_val->scalarval(); |
|
| 553 | } elseif ($kind == 'array') |
|
| 554 | { |
|
| 555 | reset($xmlrpc_val->me); |
|
| 556 | list($a, $b) = each($xmlrpc_val->me); |
|
| 557 | $size = count($b); |
|
| 558 | ||
| 559 | $arr = array(); |
|
| 560 | ||
| 561 | for ($i = 0; $i < $size; $i++) |
|
| 562 | { |
|
| 563 | $arr[] = $this->xmlrpc_decoder($xmlrpc_val->me['array'][$i]); |
|
| 564 | } |
|
| 565 | return $arr; |
|
| 566 | } elseif ($kind == 'struct') |
|
| 567 | { |
|
| 568 | reset($xmlrpc_val->me['struct']); |
|
| 569 | $arr = array(); |
|
| 570 | ||
| 571 | while (list($key, $value) = each($xmlrpc_val->me['struct'])) |
|
| 572 | { |
|
| 573 | $arr[$key] = $this->xmlrpc_decoder($value); |
|
| 574 | } |
|
| 575 | return $arr; |
|
| 576 | } |
|
| 577 | } |
|
| 578 | ||
| 579 | ||
| 580 | //------------------------------------- |
|
| 581 | // ISO-8601 time to server or UTC time |
|
| 582 | //------------------------------------- |
|
| @@ 1160-1195 (lines=36) @@ | ||
| 1157 | } |
|
| 1158 | ||
| 1159 | ||
| 1160 | function decode_message($param) |
|
| 1161 | { |
|
| 1162 | $kind = $param->kindOf(); |
|
| 1163 | ||
| 1164 | if ($kind == 'scalar') |
|
| 1165 | { |
|
| 1166 | return $param->scalarval(); |
|
| 1167 | } elseif ($kind == 'array') |
|
| 1168 | { |
|
| 1169 | reset($param->me); |
|
| 1170 | list($a, $b) = each($param->me); |
|
| 1171 | ||
| 1172 | $arr = array(); |
|
| 1173 | ||
| 1174 | for ($i = 0; $i < count($b); $i++) |
|
| 1175 | { |
|
| 1176 | $arr[] = $this->decode_message($param->me['array'][$i]); |
|
| 1177 | } |
|
| 1178 | ||
| 1179 | return $arr; |
|
| 1180 | } elseif ($kind == 'struct') |
|
| 1181 | { |
|
| 1182 | reset($param->me['struct']); |
|
| 1183 | ||
| 1184 | $arr = array(); |
|
| 1185 | ||
| 1186 | while (list($key, $value) = each($param->me['struct'])) |
|
| 1187 | { |
|
| 1188 | $arr[$key] = $this->decode_message($value); |
|
| 1189 | } |
|
| 1190 | ||
| 1191 | return $arr; |
|
| 1192 | } |
|
| 1193 | } |
|
| 1194 | ||
| 1195 | } // End XML_RPC_Messages class |
|
| 1196 | ||
| 1197 | ||
| 1198 | ||