PHPで複数pingサーバへ更新通知
※以前別の場所で書いた文章を備忘的に書き記しておきます。
【投稿年月日】2007-10-12 【ジャンル】PHP/MySQL
とある事情により、GoogleやYahoo!などの複数pingサーバへRSSを自動的に送信する必要に迫られたので、備忘的にメモを残しておきます。「XML/RPC.php」というpearが入っていれば、「$blogTitle」と「$blogTopUrl」を書き換えるだけでOKです。代表的と思われるpingサーバをいくつか入れていますが、適宜付け加えたり削除したりしてください。
ちなみに下記ページに少しだけ手を加えたものです。(ありがとうございました)
pearで更新pingの送信
<?php
require_once('XML/RPC.php');
$blogTitle = 'My Blog';
$blogTopUrl = 'http://blog.example.com';
$ping = array(
'api.my.yahoo.co.jp' => '/RPC2',
'blog.goo.ne.jp' => '/XMLRPC',
'blogsearch.google.co.jp' => '/ping/RPC2',
'bulkfeeds.net' => '/rpc',
'rpc.technorati.com' => '/rpc/ping',
'ping.ask.jp' => '/xmlrpc.m',
'ping.bloggers.jp' => '/rpc/',
'www.blogpeople.net' => '/servlet/weblogUpdates'
);
$param = array(
new XML_RPC_Value($blogTitle, 'string'),
new XML_RPC_Value($blogTopUrl, 'string')
);
$msg=new XML_RPC_Message('weblogUpdates.ping', $param);
foreach($ping as $pingServer => $pingPath) {
$client = new XML_RPC_Client($pingPath, $pingServer, 80);
$response = $client->send($msg);
if(!$response) {
echo "timeout : ".$pingServer."<br />\n";
}elseif($response->faultCode()) {
echo "failed : ".$pingServer."<br />\n";
}else {
echo "success!! : ".$pingServer."<br />\n";
}
}
exit;
?>
require_once('XML/RPC.php');
$blogTitle = 'My Blog';
$blogTopUrl = 'http://blog.example.com';
$ping = array(
'api.my.yahoo.co.jp' => '/RPC2',
'blog.goo.ne.jp' => '/XMLRPC',
'blogsearch.google.co.jp' => '/ping/RPC2',
'bulkfeeds.net' => '/rpc',
'rpc.technorati.com' => '/rpc/ping',
'ping.ask.jp' => '/xmlrpc.m',
'ping.bloggers.jp' => '/rpc/',
'www.blogpeople.net' => '/servlet/weblogUpdates'
);
$param = array(
new XML_RPC_Value($blogTitle, 'string'),
new XML_RPC_Value($blogTopUrl, 'string')
);
$msg=new XML_RPC_Message('weblogUpdates.ping', $param);
foreach($ping as $pingServer => $pingPath) {
$client = new XML_RPC_Client($pingPath, $pingServer, 80);
$response = $client->send($msg);
if(!$response) {
echo "timeout : ".$pingServer."<br />\n";
}elseif($response->faultCode()) {
echo "failed : ".$pingServer."<br />\n";
}else {
echo "success!! : ".$pingServer."<br />\n";
}
}
exit;
?>
今まで必要性をあまり感じなかったので、pingサーバを利用したことがありませんでしたが、実際に使ってみると便利ですね。
例えばテクノクラティジャパンのブログ検索は、ping送信した直後に反映されました。あまりの早さに驚くと共に、RSSフィードだけでなく全てのHTMLコードがインデックス化されているし、まさに万々歳です。
現在、PHPとJavaScriptとXML(JSON)で、日記というか手軽にメモできるサイトの構築を行なっています。各種APIを利用することで、どうやらデータベースを使うことなく、面白いものができそうです。
EDIUNET | PHP/MySQL | 独り言 | 提供サービス | JavaScript