[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)))
最後までお読み頂きましてありがとうございました!