Top > xtra > php_manual > xmlrpc > xmlrpc_decode_request

xmlrpc_decode_request

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

説明

mixed xmlrpc_decode_request(string $xml,string &$method[, string $encoding])

パラメータ

xml
XML-RPC リクエストの XML です。 methodCall 要素が root 要素になっているはずです。
method
XML-RPC リクエストで指定されているメソッドが 何であったかを格納する変数を渡します。 関数呼出し後に、この変数の値を調べるとメソッドが 何であったかを知ることができます。
encoding
PHP 内部での文字列で何が使われているかを指定します。 xml 内の文字列がどのようなエンコーディングで記載されているかは xml ドキュメント自体で宣言されていますが、 これを PHP 内部の文字列として表現する際、 必要に応じて文字セットの変換を行います。

返り値

XML-RPC リクエストの可変長引数が配列で返されます。

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 を参照してください。


Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes
Last-modified: (1877d)

© 2006-2008 Internet Revolution