$errno
,'faultString'=>"Remote XMLRPC Error from
".$_SERVER['HTTP_HOST'].": $errstr in at $errfile:$errline"
)));
die();
}
set_error_handler('return_xmlrpc_error');
/*
Использование функции без параметра: curl -d "echo" http://kappa.cs.karelia.ru/~kulakov/xmlrpc/test.php
Использование функции с параметром: curl -d "echoparamSome input" http://kappa.cs.karelia.ru/~kulakov/xmlrpc/test.php
*/
function echo_func($method_name, $params, $app_data)
{
if (is_array($params[0]) && array_key_exists("param", $params[0]))
{
$ret = array("Found parameter", $params[0]["param"]);
} else {
$ret = "No params. ";
}
if (is_array($ret))
array_push($ret, "Some results returns");
else
$ret .= "Some results returns";
return $ret;
}
/* create server */
$xmlrpc_server = xmlrpc_server_create();
/* register methods */
xmlrpc_server_register_method($xmlrpc_server, "echo", "echo_func");
/* process request */
$request_xml = file_get_contents("php://input");//$HTTP_RAW_POST_DATA;
$response = xmlrpc_server_call_method($xmlrpc_server, $request_xml, '');
header('Content-Type: text/xml');
echo $response;
xmlrpc_server_destroy($xmlrpc_server);
?>