XML-RPCといえば、PEARでやってる人も多いかと思うけど、はっきり言ってとても使いにくい。そこで、とても使い勝手のいい Incutio XML-RPC の紹介と、その使い方をちらり
ダウンロードはこちらから
http://scripts.incutio.com/xmlrpc/

まずは超簡単なクライアントの使い方
//ライブラリの読み込み
require_once "IXR_Library.inc.php";
//APIのアドレスをセット
$client =& new IXR_Client("http://******");
//test.getListメソッドを送信
$client->query('test.getList');
//結果を出力
print_r($client->getResponse());
たったこれだけ!で、サーバーからリストを取ってこれる。

サーバーから返ってきた XML は Incutio XML-RPC が解析して適当な型に自動変換してくれるのでとても楽ちんです。

ちなみに、エラー処理も含めるとこんな感じ
require_once "IXR_Library.inc.php";
$client =& new IXR_Client("http://******");
if(!$client->query('test.getList'))
{
   die('error - '.$client->getErrorCode());
}
print_r($client->getResponse());
クエリの例をいくつか
$client->query('test.add',1,2);
$client->query('test.getItem','1');
$client->query('test.addAll',array(1,2,3,4,5));
簡単でしょ? ではクエリを受け取るサーバー側はというと、 上のクエリの例にでてる test.add というメソッドを実装すると、、
require_once "IXR_Library.inc.php";
function add($a,$b)
{
   return $a+$b;
}
$server =& new IXR_Server(array('test.add'=>'add'));
たったこれだけ。配列を受け取る場合も、
require_once "IXR_Library.inc.php";
function addAll($list)
{
   $result = 0;
   foreach($list as $a){$result+=$a};
   return $result;
}
$server =& new IXR_Server(array('test.addAll'=>'addAll'));
こんなんでいけちゃうんですよ。
2007年12月17日01時21分13秒
カテゴリ: Incutio XML-RPC