ホームページ >php教程 >php手册 >XML-RPC を使用して PHP で Web サービスを構築するための簡単な入門

XML-RPC を使用して PHP で Web サービスを構築するための簡単な入門

WBOY
WBOYオリジナル
2016-06-21 09:11:10862ブラウズ

ウェブ|xml

[Web サービスの概要]

Web サービスは、異種システムの通信のために作成されました。その基本的な考え方は、XML ベースの HTTP リモート呼び出しを使用して、新しいプロトコルを確立する必要をなくすことです。現在、Web サービス通信には 2 つのプロトコル標準があり、1 つは XML-RPC、もう 1 つは SOAP です。 XML-RPC は比較的単純で以前に登場しましたが、SOAP はより複雑で、主に安定性、堅牢性、セキュリティ、および複雑な対話が必要な場合に使用されます。

PHP は XML-RPC と SOAP プロトコル アクセスを統合しており、どちらも xmlrpc 拡張機能に集中しています。また、PHP の PEAR では、PHP 4 であっても PHP 5 であっても、XML-RPC 拡張機能がデフォルトで統合されており、この拡張機能は xmlrpc 拡張機能とは何の関係もなく、XML-RPC プロトコル相互作用を独立して実装できます。は xmlrpc 拡張子ではありません。PEAR::XML-RPC 拡張子を使用することをお勧めします。

ここでは主に XML-RPC を使用して Web サービスの対話プロセスを簡単に説明します。詳細については、PHP マニュアルを参照することをお勧めします。

【xmlrpc拡張機能をインストールする】

xmlrpc php拡張機能がシステムにインストールされていない場合は、正しくインストールしてください。

Windows プラットフォームでは、まず、PHP インストール ディレクトリにある拡張子 php_xmlrpc.dll を C:Windows または C:Winnt ディレクトリに配置します (PHP4 の拡張子は C:phpextensions ディレクトリにあり、PHP5 の拡張子はC:phpext ディレクトリ)) )、同時に C:Windowsphp.ini または C:Winntphp.ini の extension=php_xmlrpc.dll の前にあるセミコロン「;」を削除し、Web サーバーを再起動して、 phpinfo() の XML-RPC プロジェクトで、xmlrpc 拡張機能が正しくインストールされているかどうかを確認します。

Unix/Linux プラットフォームでは、xmlrpc 拡張機能がインストールされていない場合は、PHP を再コンパイルし、設定時に --with-xmlrpc オプションを追加してから、phpinfo() をチェックして、xmlrpc が正常にインストールされているかどうかを確認してください。

(注: 以下の操作は、xmlrpc 拡張の通常のインストールに基づいています。必ず正しくインストールしてください。)

[ XML-RPC の動作原理]

XML-RPC とは、大まかに言うと、プロセス全体を意味しますXML を通信に使用することです。まず、RPC クライアントから渡された XML でカプセル化されたリクエストを処理する RPC サーバーが構築され、処理結果が XML 形式で RPC クライアントに返されます。その後、クライアントは XML を解析して必要なデータを取得します。

XML-RPCのサーバー側には、クライアントが呼び出すための既製の関数が必要であり、クライアントが送信したリクエスト内の関数とメソッドはサーバー側の関数とメソッドと一致していなければなりません。そうしないと、必要な結果が得られません。得られた。

ここで、プロセス全体を説明する簡単なコードを作成します。

【XML-RPC実践】

サーバーはxmlrpc_server_create関数を使ってサーバーを生成し、公開する必要があるRPC呼び出しインターフェースを登録し、RPCクライアントからPOSTされたXMLデータを受け取り、処理を行います。結果は XML 形式でクライアントに表示されます。

コードは以下の通りです: rpc_server.php

/**
* 関数: 呼び出すために RPC クライアントに提供される関数
* パラメーター:
* $method クライアントが呼び出す必要がある関数
* $params クライアントが呼び出す必要がある関数のパラメーター配列
* 戻り値: Return指定された呼び出し結果
*/
function rpc_server_func($method, $params) {
$parameter = $params[0];
if ( $parameter = = "get")
{
$return = 'get メソッドによるこのデータ'; }
else
{
$return = 'メソッドでもパラメータでもない';
}
return $return を指定する
}

// XML-RPC サーバーを生成します

$xmlrpc_server = xmlrpc_server_create();

// サーバーによって呼び出されるメソッド rpc_server を登録します。これは実際には rpc_server_func 関数を指します

xmlrpc_server_register_method($xmlrpc_server, "rpc_server", "rpc_server_func") );

//クライアントからXMLデータのPOSTを受け付けます

$request = $HTTP_RAW_POST_DATA;

//クライアントを呼び出してXMLリクエストを実行し、実行結果を取得します

$xmlrpc_response = xmlrpc_server_call_method($xmlrpc_server, $request, null) ;

//関数処理後の結果 XML を出力

header('Content-Type: text/xml');
echo $xmlrpc_response

//XML-RPC サーバー側リソースを破棄します

xmlrpc_server_destroy($xmlrpc_server);
? >

[1] [2] 次のページ



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。