* xmlrpc_server_register_introspection_callback [#u51015e5]
xmlrpc introspection XML を返す PHP 関数を登録します。
xmlrpc introspection XML については http://xmlrpc-epi.sourceforge.net/specs/rfc.system.describeMethods.php の「Describing the Method(s)」を
参照してください。登録した関数が返すイントロスペクション情報は、既にある情報を上書きします。
** 説明 [#o560d627]
bool xmlrpc_server_register_introspection_callback(resource $server, string $function)
** パラメータ [#l8e00ae7]
: server | xmlrpc サーバを指し示す PHP リソース型。
: function | callback 関数の関数名。callback 関数は次の形になり、introspection XML を文字列で返します。
string callback_function(mixed $user_data)
** 返り値 [#b91f9fb9]
関数登録成功時 TRUE、失敗時 FALSE。
** 例 [#t8f1f423]
<?php
# php://input で HTTP POST で渡される XML ドキュメントを取り込みます。
$xml = file_get_contents('php://input');
# xmlrpc サーバに登録する callback 関数は 3 つの引数を取ります。
function sample_noop($methodName, $args, $user_data){
}
# introspection xml を生成して返します。
function sample_introspection($user_data){
return '<?xml version="1.0" ?>
<introspection version="1.0">
<methodList>
<methodDescription name="sample.noop">
<author>Hiroaki Kawai</author>
<purpose>no-operation server that might be useful for debugging.</purpose>
<version>0.1</version>
<signatures>
<signature>
</signature>
</signatures>
</methodDescription>
</methodList>
</introspection>';
}
$server = xmlrpc_server_create();
xmlrpc_server_register_method($server, 'sample.noop', 'sample_noop');
xmlrpc_server_register_introspection_callback($server, 'sample_introspection');
$response = xmlrpc_server_call_method($server, $xml, null,
array('escaping'=>'markup','encoding'=>'UTF-8'));
header('Content-type: text/xml');
echo $response;
xmlrpc_server_destroy($server);
?>
xmlrpc_server_add_introspection_data を使うと、
PHP 配列の形式でイントロスペクション情報が定義できます。
introspection xml から PHP 配列の形式への変換は xmlrpc_parse_method_descriptions で行えます。
|
© 2006-2008 Internet Revolution