PHPでPingを送信する方法を関数化する


PHPを使ってサイトの更新情報などをPINGサーバーに送信する方法とその関数化です。
PINGの仕組みは、サイトの情報を記載したXMLを対象のPINGサーバーにPOSTします。
するとサイトにPINGさんが情報を見にきてくれる。というわけです。
ブログサービスでは標準機能ですが、今回はPHPで実装してみようと思います。

SPONSORED LINK

PHPでPINGを送信する関数

独自関数で、送信先ドメイン・送信先パス・サイト名・サイトURLを指定するとXMLを生成してPINGサーバーにソケット経由で送信するPHPです。

function pushPing($host, $path, $title, $url) {
$content =
"<?xml version=\"1.0\"?>\n"
 . "<methodCall>\n"
 . "<methodName>weblogUpdates.ping</methodName>\n"
 . "<params>\n"
 . "<param>\n"
 . "<value>" . htmlspecialchars($title) . "</value>\n"
 . "</param>\n"
 . "<param>\n"
 . "<value>$url</value>\n"
 . "</param>\n"
 . "</params>\n"
 . "</methodCall>\n";

$ch =
"POST $path HTTP/1.0\n"
 . "Host: $host\n"
 . "Content-Type: text/xml\n"
 . "Content-Length: ". strlen($content) . "\n"
 . "\n"
 . $content;

$sopen = @fsockopen($host, 80, $errno, $errstr, 10);

if($sopen){
 $res = "";
 fputs($sopen, $ch);
 while(!feof($sopen)){
  $res .= fread($sopen, 1024);
 }
}
return $res;
}

PING送信関数の実行方法

<?print pushPing("blogsearch.google.com", "/ping/RPC2", "デアイモビ", "http://deaimobi.com/");?>

printすることで、Ping送信を実行して返却されたステータスコードなどのXMLレスポンスを表示できます。

サイト側の準備

送信元となるサイトにはRSS配信をしている事を明示する必要があります。

<link rel="alternate" type="application/rss+xml" title="RSS" href="【RSSのURL】" />

まとめ

最近ではPINGサーバー側でのチェックも厳しくなってきているようです。PINGスパム対策のせいでしょうか。
特に注意したいのは反映されていないからと思って同じPINGを何度も送ってしまう行為です。
送信したドメインがスパム判定を受けてしまうかもしれませんので気をつけましょう。

今日も知識欲は止まらない。

関連トピック

yahoo_dev

Yahoo!デベロッパーネットワークAPI 画像検索

検索API提供終了 有料版を含む検索APIが終了してしまいました・・・。 APIを利用したウェブアプリケーションのリスクですね。

no-copy

ガラケーで画像やデコメを再配布不可など「ファイル制限あり」にする方法

ガラケーで画像の転送不可設定をする方法についてのまとめです。 コピー制限・保存制限・画面メモ制限・キャプチャ制限などの対策と方法です。

earth

PHPなどでDB不要のブログがまだまだ使えそう

データベースまで利用してわざわざ作るほどでもないブログや、 データベースが使えないサーバーだったり、 とにかく軽量化されたブログを目

Download

PHPで画像ダウンロードのボタンでリンクする方法

PHPを利用して画像をダウンロードさせるボタンを作成する方法メモです。 リンクボタンをクリックすると保存ダイアログが表示されて、ダウン

indent

インデントはタブとスペースのどっちを使うべきなのか?

コーディングをする皆様。インデントを今日もせっせと打っていらっしゃりますか? さて、そのインデントを打つ時にタブ派とスペース派に分かれ

php

PHPでランダムに範囲内から重複しない数字を取り出す

1.とりあえず一つだけランダムで抜き出す。 [code] $num= mt_rand(1,100); [/code] 1から

Database

MySQLでTAG機能としてタグ付けを実装するデータベース設計を考える

ブログなどでも「タグ機能」って便利ですよね。カテゴライズとはまた違うタグ機能をMySQLを使って設計する時に、どのように実装するかを検討

Mail

PHPエラー対処方法「malformed header from script. Bad header=No recipient addresses found i」

PHPからメールを送信する際に「malformed header from script. Bad header=No recipien

公開日:2013/04/22