PEAR::XML_RPC から,はてなダイアリーキーワード連想語 API を使う方法

  はてなダイアリーキーワード連想語 API が面白そうだったので PEAR::XML_RPC から使ってみた.
  PEAR::XML_RPC のパラメータの組み立て方が気持ち悪すぎて嫌になる.こんなのわかんねーよ.

<?php
require_once 'XML/RPC.php';

$client = new XML_RPC_client('/xmlrpc', 'd.hatena.ne.jp');

$params = new XML_RPC_Value(
    array(
        'wordlist' => new XML_RPC_Value(
            array(
                new XML_RPC_Value('php'),
                new XML_RPC_Value('perl')
            ),
            'array'
        )
    ),
    'struct'
);

/*
// キーワード が一つのとき
$params = new XML_RPC_Value(
    array(
        'wordlist' => new XML_RPC_Value('php')
    ),
    'struct'
);
*/

$message = new XML_RPC_Message('hatena.getSimilarWord', array($params));
$response = $client->send($message);

if (!$response) {
    die($client->errstr);
}

if (!$response->faultCode()) {
    $value = $response->value();
    $data = XML_RPC_decode($value);
    $wordlist = array_map(
        create_function('$w', 'return $w["word"];'),
        $data['wordlist']
    );
    echo implode(', ', $wordlist);
} else {
    // 失敗
    echo 'Fault Code: ', $response->faultCode();
    echo 'Fault Reason: ', $response->faultString();
}
?>


- Programming Web Services With XML-RPC
  0596001193
  http://www.amazon.co.jp/o/ASIN/0596001193/todaysnonsenc-22/ref=nosim/
  Simon St. Laurent (著), Joe Johnston (著), Edd Dumbill (著)
  Oreilly & Associates Inc
  ISBN: 0596001193
  2001/07
  3,698 円

- はてなダイアリー - はてなダイアリーキーワード連想語APIとは
  http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%C0%A5%A4%A5%A2%A5%EA%A ...

- PEAR :: Manual :: XML_RPC
  http://pear.php.net/manual/ja/package.webservices.xml-rpc.php