[Tool] ブログの更新をお伝えするPing送信とは?使い方やPHPでの実装方法をかきました。
最近、YoheiM.NETのブログ更新時に、各有名サービスにブログを更新した事を伝える仕組みを導入しました。
Pingと呼ばれるサービスで、こんなブログを更新したよーとお伝えすることで、 RSSのチェックなどに来てくれるようです。
Ping送信は外部サービス活用も可能でしたが、どうせならと思い、PHPで作成しました。 そのソースコードも記載したいと思います(・∀・)

1、送信するXMLを作成する。
2、HTTPヘッダなどを作って、送信する。
上記の実装例が以下となります。
送付先は、色々あるようですが、YoheiM.NETでは上記8サイトにPing送信を行っています。
YoheiM.NETでは、少しでも可能性のあるものは試してみたいと思い、Ping送信を取り入れました。
またエンジニアとしては、せっかくなら自作したいと思い、PHPで作ってみました。
この記事やコードが少しでも他の方の参考になれば幸いです(((o(*゚▽゚*)o)))
最後までお読み頂きましてありがとうございました!
Pingと呼ばれるサービスで、こんなブログを更新したよーとお伝えすることで、 RSSのチェックなどに来てくれるようです。
Ping送信は外部サービス活用も可能でしたが、どうせならと思い、PHPで作成しました。 そのソースコードも記載したいと思います(・∀・)

Ping送信の仕組み
GoogleやYahooやFC2などの有名サービスに、XMLを送付する事で、 ブログを更新した事を伝えます。URLを見る限りRPC(リモートプロシージャーコード) という仕組みで、ブログ更新した事を感知する処理をHTTP経由で呼び出すことで、できるようです。PHPでのPing送信の実装
PHPでPing送信する為には、以下の2ステップを実施します。1、送信するXMLを作成する。
2、HTTPヘッダなどを作って、送信する。
上記の実装例が以下となります。
// 引数で指定されたところ($host, $path)に、
// 引数($title, $url)の内容をPing送信する。
function updatePing($host, $path, $title, $url) {
// 送付するXMLを作成する
$content =
"<?xml version=\"1.0\"?>\r\n"
. "<methodCall>\r\n"
. "<methodName>weblogUpdates.ping</methodName>\r\n"
. "<params>\r\n"
. "<param>\r\n"
. "<value>" . htmlspecialchars($title) . "</value>\r\n"
. "</param>\r\n"
. "<param>\r\n"
. "<value>$url</value>\r\n"
. "</param>\r\n"
. "</params>\r\n"
. "</methodCall>\r\n";
// HTTPで送付する内容を作成する
$req =
"POST $path HTTP/1.0\r\n"
. "Host: $host\r\n"
. "Content-Type: text/xml\r\n"
. "Content-Length: ". strlen($content) . "\r\n"
. "\r\n"
. $content;
// 送付する
$sock = @fsockopen($host, 80, $errno, $errstr, 2.0);
$result = "";
if ($sock) {
fputs($sock, $req);
while(!feof($sock)) {$result .= fread($sock, 1024);}
}
// Ping送信先からの戻り内容を返す
return $result;
}
// Ping送信を、送付したいところに送付する。
function sendPings () {
$title = "YoheiM .NET - 世の中のWeb情報に、体験と意見を添えて発信します";
$url = "http://www.yoheim.net/";
echo updatePing("blogsearch.google.com", "/ping/RPC2", $title, $url) . "\r\n";
echo updatePing("rpc.technorati.com", "/rpc/ping", $title, $url) . "\r\n";
echo updatePing("api.my.yahoo.com", "/RPC2", $title, $url) . "\r\n";
echo updatePing("api.my.yahoo.co.jp", "/RPC2", $title, $url) . "\r\n";
echo updatePing("rpc.weblogs.com", "/RPC2", $title, $url) . "\r\n";
echo updatePing("ping.ask.jp", "/xmlrpc.m", $title, $url) . "\r\n";
echo updatePing("blog.goo.ne.jp", "/XMLRPC", $title, $url) . "\r\n";
echo updatePing("ping.fc2.com", "/", $title, $url) . "\r\n";
}
送付先は、色々あるようですが、YoheiM.NETでは上記8サイトにPing送信を行っています。
最後に
Ping送信を行うとブログのアクセス数上がったという人も、変わらないという人もいるのが現状のようです。YoheiM.NETでは、少しでも可能性のあるものは試してみたいと思い、Ping送信を取り入れました。
またエンジニアとしては、せっかくなら自作したいと思い、PHPで作ってみました。
この記事やコードが少しでも他の方の参考になれば幸いです(((o(*゚▽゚*)o)))
最後までお読み頂きましてありがとうございました!





