함수 | 설명 |
---|---|
xmlrpc_server_create () | XML-RPC 서버를 생성한다. |
xmlrpc_encode_request ( string method, mixed params [, array output_options] ) | 메소드 요청이나 응답에 대한 XML을 생성한다. 문자열이나 오류 발생시 FALSE를 반환한다. |
xmlrpc_encode ( mixed value ) | PHP 변수에 대한 XML을 생성한다. |
xmlrpc_decode_request ( string xml, string &method [, string encoding] ) | XML을 PHP로 디코딩한다. 배열을 반환. |
xmlrpc_get_type ( mixed value ) | XML-RPC 데이터 타입을 반환하는데, 예를 들면 PHP 값에 대해 “struct”, “int”, “string”, “base64”를 반환한다. |
xmlrpc_set_type ( string &value, string type ) | PHP 문자열 값에 대한 base64내지는 datetime으로 xmlrpc 타입을 지정한다. |
xmlrpc_server_register_method ( resource server, string method_name, string function ) | PHP 함수를 웹 서비스 메소드로 등록한다. method_name 값은 XML-RPC 요청에 들어있는 methodName 엘리먼트의 값과 동일하다. |
xmlrpc_server_call_method ( resource server, string xml, mixed user_data [, array output_options] ) | XML 요청을 파싱하여 메소드를 호출한다. 메소드 호출 결과를 반환한다. user_data 매개변수는 메소드 핸들러 함수에 필요한 모든 애플리케이션 데이터를 지정한다. output_options 매개변수는 응답 XML을 생성하는데 필요한 옵션에 대한 해시 배열을 지정한다. 다음의 옵션들을 지정할 수 있다.
output_type: “php”나 “xml”과 같은 출력 데이터 타입을 지정하며 기본 데이터 타입은 “xml”이다. 만약 출력 타입이 “php”일 경우 다른 값들은 무시된다.verbosity: 생성된 메시지의 간결함(compactness) 정도를 지정한다. escaping: 몇몇 문자들에 대한 이스케이프를 방법을 지정한다. version: 사용할 XML의 버전을 지정하며, 버전값으로 “xmlrpc”, “soap 1.1”, “simple”을 값으로 지정할 수 있으며 들어오는 요청에 사용된 버전을 사용하도록 “auto”로 지정할 수도 있다. encoding: 데이터의 인코딩을 지정한다. 기본값은 “iso-8859-1”이다. output_options 매개변수를 사용하는 예를 들자면 다음과 같다: .$output_options = array( "output_type" => "xml", "verbosity" => "no_white_space", "escaping" => array("markup", "non-ascii", "non-print"), "version" => "xmlrpc", "encoding" => "utf-8" ); |
xmlrpc_is_fault ( array arg ) | 배열값이 XML-RPC fault를 나타내는지를 판단한다. |
xmlrpc_server_destroy ( resource server ) | 서버 자원을 제거한다. |
function hello_func($method_name, $params, $app_data) { $name = $params[0]; return "Hello $name."; }xmlrpc_server_create() 메소드를 이용하여 XML-RPC 서버를 생성한다.
$xmlrpc_server=xmlrpc_server_create();xmlrpc_server_create 메소드가 서버를 생성하지 못할 경우 FALSE를 반환한다. xmlrpc_register_method 메소드를 이용하여 서버에 hello_func 함수를 등록한다. xmlrpc_server_register_method 메소드의 첫 번째 인자는 XML-RPC 서버 응답이다. 두 번째 인자는 웹 서비스에 의해 제공되는 메소드의 이름이며, XML-RPC 요청에 들어있는
$registered=xmlrpc_server_register_method ($xmlrpc_server, "hello", "hello_func" );PHP 함수가 등록되면 xmlrpc_server_registere_method는 TRUE를 반환한다.
$request_xml = <<< ENDPHP에 XML을 이스케이프하기 위해 <<hello Deepak END;
print $response;xmlrpc-webservice.php PHP 스크립트가 아래에 나타나 있다.
xmlrpc-webservice.php 스크립트를 C:/Apache2/htdocs 디렉터리로 복사한다. http://localhost/xmlrpc-webservice.php URL을 통해 PHP 스크립트를 호출한다. 서버로부터 전달되는 응답을 브라우저에 출력해 보면 그림 2와 같다.END; $response=xmlrpc_server_call_method( $xmlrpc_server, $request_xml, "", array(output_type => "xml")); print $response; ?> hello Deepak
이전 글 : PHP를 이용한 웹 서비스 개발(2)
다음 글 : DHCP 구현과 이해
최신 콘텐츠