blogがらみの仕事でWeblogUpdates.Pingを飛ばす必要があったので毛嫌いしていたPEAR XML_RPCを使ってみました。

使ってみると・・・いいじゃないか!

デフォルトでインストールされるし! XML嫌いとか生のPOST厭だとかいってんじゃねーよ! > おれ APIとかすげー作ってみたくなってきた。

require_once("Net/URL.php");
require_once("XML/RPC.php");

/**
 * WeblogUpdates.Pingを飛ばす
 *
 * @param string $ping_server_url PingサーバのURL
 * @param string $blog_name blog名
 * @param string $blog_url blogのURL
 * @return boolean Ping送信に成功したらTRUE、失敗したらFALSE
 * @see Net_URL
 * @see XML_RPC_Client::send()
 */
function sendWeblogUpdatesPing($ping_server_url, $blog_name, $blog_url) {
    $url = new Net_URL($ping_server_url);
    $msg = new XML_RPC_Message('weblogUpdates.ping', array(new XML_RPC_Value($blog_name), new XML_RPC_Value($blog_url)));
    $cli = new XML_RPC_Client($url->path, $url->host, $url->port);
    $resp = $cli->send($msg);

    if (!$resp) {
        trigger_error("sendWeblogUpdatesPing(): ".$cli->errstr, E_USER_NOTICE);
        return FALSE;
    }

    if ($resp->faultCode()) {
        $msg = "sendWeblogUpdatesPing(): Failed to send ping. Fault Code: ".
            $resp->faultCode()." Fault Reson: ".$resp->faultString();
        trriger_error($msg, E_USER_NOTICE);
        return FALSE;
    }
    return TRUE;
}

Comments


Option