TopMovable TypeXML-RPC > PHPでXML-RPCを利用する方法
2010年5月18日

PHPでXML-RPCを利用する方法

Posted at May 18,2010 1:55 AM
Category:[PHP, XML-RPC]
Tag:[, , ]

PHPでXML-RPCを利用する方法を紹介します。ここではMovable TypeのXML-RPCを起動するサンプルを示しますが、他のXML-RPCにも応用できると思います。

このエントリーで紹介する方法ではPHP5が必要です。

1.PEAR::XML_RPC2のインストール

PEAR::XML_RPC2のサイトで「Download」をクリック。PEARとはPHPのクラスライブラリ集で、「PHP Extension and Application Repository」の略です。PEAR::XML_RPC2は、XML-RPCプロトコルをPHP5で実装したものです。

PEAR::XML_RPC2のサイト

バージョンのリンクをクリック。これでアーカイブをダウンロードできます。

PEAR::XML_RPC2のダウンロード

ダウンロードしたアーカイブを展開し、中にあるXMLフォルダを任意のフォルダに配置します。ここではアプリケーションディレクトリに配置します。

なお、XAMPPにはC:\xampp\php\PEAR\XMLがあるので、そこにXMLフォルダを配置しても良いでしょう。最新のXAMPPにはもしかしたらバンドルされているかもしれません。

2.cURL拡張モジュールを有効にする

PEAR::XML_RPC2ではcURL拡張モジュール(php_curl.dll)が必要です。XAMPPの場合、php_curl.dllはC:\xampp\php\extにバンドルされているので、php.iniを修正して拡張モジュールを有効にするだけです。php.iniのパスはC:\xampp\apache\binになります。

修正方法は簡単で、

;extension=php_curl.dll

の先頭の「;」を削除して、

extension=php_curl.dll

とするだけです。修正後、XAMPPを再起動してください。再起動しないと設定が反映されません。

3.サンプルコード

XML-RPCのサンプルコードを以下に示します。サンプルはmetaWeblog.getPostを起動するものなので、他のAPIを起動する場合は、パラメータとAPI名を適宜変更してください。

<html>
<head>
<title>XML-RPC Client</title>
</head>
<body>
<h1>XML-RPC Client</h1>
<?php
require_once("./XML/RPC2/Client.php");
 
// metaWeblog.getPostのサンプル
$prefix = 'metaWeblog.'; // プレフィックス
$encoding = 'utf-8'; // 文字エンコーディング
$uri = 'http://localhost/mt/mt-xmlrpc.cgi'; // mt-xmlrpc.cgiのURI
 
$options = array('prefix' => $prefix, 'encoding' => $encoding);
$client = XML_RPC2_Client::create($uri, $options); // XML-RPXクライアントの生成
 
$entry_id = 1; // ブログ記事ID
$user = 'foo'; // ウェブサービスのユーザー名
$pass = 'hogehoge'; // ウェブサービスのパスワード
 
try {
    $result = $client->getPost($entry_id, $user, $pass); // API起動
} catch (XML_RPC2_FaultException $e) {
    var_dump($e);
} catch (Exception $e) {
    var_dump($e);
}
?>
 
<h2><a href="<?php echo $result["permaLink"]; ?>"><?php echo $result["title"]; ?></a></h2>
<div><?php echo $result["description"]; ?></div>
 
</body>
</html>

返却結果をすべて出力したい場合は、

<h2><a href="<?php echo $result["permaLink"]; ?>"><?php echo $result["title"]; ?></a></h2>
<div><?php echo $result["description"]; ?></div>

の代わりに、

<?php var_dump($result); ?>

を記述すると良いでしょう。

4.参考サイト

Posted by yujiro   このページの先頭に戻る
関連記事
    この記事を読んだ人はこんな記事も読んでいます
    人気エントリー
    Hatena Hot Entries
    Hatena Entries
    トラックバックURL


    コメントする
    greeting

    *必須

    *必須(非表示)


    ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

    太字 イタリック アンダーライン ハイパーリンク 引用
    [サインインしない場合はここにCAPTCHAを表示します]

    コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

    コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)

    Now loading...
    Introduction
    Entries of this Category
    Recent Entries
    Recent Comments
    Recent Trackbacks
    QRcode

    現在停止中です
    携帯電話からこのQRcodeを撮影することで携帯用URLを取得することができます

    URI for cellular phones
    ギターに入った猫
    Styles
    Font Size
    Default
    For defective color vision
    Gray Scale
    RGB Color
    Search this site

    このブログをメールで購読する by:FeedBurner

    loading ...
    Categories
    Monthly Archives
    BlogPeople
    Syndicate this site
    FeedBurner(RSS1.0/RSS2.0/Atom)
    Counter
    これまでのアクセス
    クリエイティブ・コモンズ・ライセンス
    Powered by
    Movable Type 5.12