Top > xtra > php_manual > xmlrpc > xmlrpc_decode

* xmlrpc_decode [#i9ba7c40]
XML-RPC レスポンス時に送信される XML を PHP のネイティブな形式にデコードする。

** 説明 [#ff09adfa]
 mixed xmlrpc_decode(string $xml[, string $encoding])

** パラメータ [#vcdae4d6]
: xml | XML-RPC レスポンスの XML です。
methodResponse 要素が root 要素になっているはずです。

: encoding | PHP 内部での文字列で何が使われているかを指定します。
xml 内の文字列がどのようなエンコーディングで記載されているかは
xml ドキュメント自体で宣言されていますが、
これを PHP 内部の文字列として表現する際、
必要に応じて文字セットの変換を行います。

** 返り値 [#ad190d18]
XML-RPC レスポンスの値が PHP の配列として返されます。

** 例 [#m2d3e0b5]
具体的な例は xmlrpc_encode_request [[xmlrpc_encode_request>xtra/php_manual/xmlrpc/xmlrpc_encode_request]]
具体的な例は[[xmlrpc_encode_request>xtra/php_manual/xmlrpc/xmlrpc_encode_request]]
を参照して下さい。

典型的な例は次のような変換を行います。
 var_dump(xmlrpc_decode('<methodResponse>
 <params><param><int>12</int></param></params>
 </methodResponse>'));

実行結果はこのようになります。
 int(12)

XML-RPC 呼び出しが失敗した場合は次のような挙動をします。
失敗だったかどうかは xmlrpc_is_fault で調べることができます。
 $data=xmlrpc_decode('<methodResponse><fault><value><struct>
 <member><name>faultCode</name><value><int>4</int></value></member>
 <member><name>faultString</name><value><string>Too many parameters.</string></value></member>
 </struct></value></fault></methodResponse>');
 var_dump($data);
 if(is_array($data)){
  var_dump(xmlrpc_is_fault($data));
 }

実行結果はこのようになります。
 array(2) {
   ["faultCode"]=>
   int(4)
   ["faultString"]=>
   string(20) "Too many parameters."
 }
 bool(true)

    Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes

© 2006-2008 Internet Revolution