Top > xtra > php_manual > xmlrpc > xmlrpc_decode_request

* xmlrpc_decode_request [#sa9fedae]
XML-RPC リクエスト時に送信される XML を PHP のネイティブな形式にデコードする。

** 説明 [#c81cb048]
 mixed xmlrpc_decode_request(string $xml,string &$method[, string $encoding])

** パラメータ [#u4c1e116]
: xml | XML-RPC リクエストの XML です。
methodCall 要素が root 要素になっているはずです。

: method | XML-RPC リクエストで指定されているメソッドが
何であったかを格納する変数を渡します。
関数呼出し後に、この変数の値を調べるとメソッドが
何であったかを知ることができます。

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

** 返り値 [#qd666934]
XML-RPC リクエストの可変長引数が配列で返されます。


** 例 [#t02697cd]
XML-RPC サーバの例
 <?php
 # php://input で HTTP POST で渡される XML ドキュメントを取り込みます。
 $xml = file_get_contents('php://input');
 
 $method="";
 $params=xmlrpc_decode_request($xml,$method,"UTF-8");
 if($method=='php.trim'){
 	header('Content-type: text/xml');
 	echo xmlrpc_encode(trim($params[0]));
 	return;
 }
 header('Content-type: text/xml');
 // 少し特殊な用法ですが、xmlrpc_encode_request の第1引数を null にして、
 // faultCode, faultString を渡すと、fault レスポンスの XML が生成できます。
 echo xmlrpc_encode_request(null, array(
   'faultCode'=>-32601, 
   'faultString'=>"server error. requested method not found"));
 ?>

xmlrpc_server_* 関数群を使って XML-RPC サーバを実装することもできます。
xmlrpc_server_create を参照してください。
[[xmlrpc_server_create>xtra/php_manual/xmlrpc/xmlrpc_server_create]]
を参照してください。

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

© 2006-2008 Internet Revolution