@@ 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 |