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;
}