2007年09月25日

phpでping送信

0001: \r\n";
0035: $str .= "\r\n";
0036: $str .= "weblogUpdates.ping\r\n";
0037: $str .= "\r\n";
0038: $str .= "\r\n";
0039: $str .= "$name\r\n";
0040: $str .= "\r\n";
0041: $str .= "\r\n";
0042: $str .= "$url\r\n";
0043: $str .= "\r\n";
0044: $str .= "
\r\n";
0045: $str .= "
\r\n";
0046:
0047: //送信する
0048: fputs($sock, "POST " . $path . " HTTP/1.1\r\n");
0049: fputs($sock, "Host: $host\r\n");
0050: fputs($sock, "Content-type: text/xml\r\n");
0051: fputs($sock, "Content-length: " . strlen($str) . "\r\n");
0052: fputs($sock, "\r\n");
0053: fputs($sock, "$str\r\n");
0054:
0055: //リターンを受け取る
0056: $res = "";
0057: while (!feof($sock)) $res .= fgetc($sock);
0058:
0059: fclose($sock);
0060:
0061: //リターンからエラーコードを解釈する
0062: preg_match("/(\<\?xml)(.*)(\<\/methodResponse\>)/s", $res, $arr);
0063: $res = preg_replace("/UTF-8/i", "utf-8", $arr[0]); //コーディング文字の置換
0064:
0065: $dom = domxml_open_mem($res);
0066: $methodres = $dom->get_elements_by_tagname("methodResponse");
0067: $params = $methodres[0]->get_elements_by_tagname("params");
0068: $param = $params[0]->get_elements_by_tagname("param");
0069: $value = $param[0]->get_elements_by_tagname("value");
0070: $struct = $value[0]->get_elements_by_tagname("struct");
0071: $member = $struct[0]->get_elements_by_tagname("member");
0072: $value = $member[0]->get_elements_by_tagname("value");
0073: $error = $value[0]->get_elements_by_tagname("boolean");
0074:
0075: return $error[0]->get_content();
0076: }
0077:
0078:
0079: //初回起動時
0080: if (isset($_POST["SERVER"]) == FALSE) {
0081: $myself = basename($_SERVER["PHP_SELF"]);
0082:
0083: // ここまでPHPプログラム =======================================================
0084: ?>
0085:
0087:
0088:
0089:
0090: 更新ping送信
0091:
0092:
0093:
0094:

■更新ping送信


0095:

0096:
0097:
0098:
0099:
0100:
0101:
0102:
0103:
0104:
0105:
0106:
0107:
0108:
0109:
0110:
0111:
0112:
0113:
サーバURL入力
ブログ/サイト名
記事URL

0114:

0115:
0116:
0117:
0118:
0139:
posted by 牙人 at 00:42| 東京 ☁| Comment(0) | TrackBack(0) | モジュール | このブログの読者になる | 更新情報をチェックする

PHPでBlog更新ping (XML-RPC)を送信する

PHPでBlog更新pingを送信するには、PEARの XML/RPC を利用すると簡単に実現する。
サンプルソース

'http://ping.rss.drecom.jp', 'path' => '/', ), array( 'server' => 'http://ping.bloggers.jp', 'path' => '/rpc/', ),);ping_send($blogtitle, $blogtopurl, $servers);function ping_send($blogtitle, $blogtopurl, $servers){ $param=array( new XML_RPC_Value($blogtitle,'string'), new XML_RPC_Value($blogtopurl,'string') ); $msg=new XML_RPC_Message('weblogUpdates.ping',$param); foreach($servers as $k => $v){ $client=new XML_RPC_Client($v['path'],$v['server'],80); $response=$client->send($msg); if($response->faultCode()){ print $v['server'].'failed'."¥n"; } else{ print $v['server'].'success'."¥n"; } }}?>
ping送信先サーバーを追加するには

array( 'server' => 'http://ping.rss.drecom.jp', 'path' => '/', ),
のところを追加していけばよい。


posted by 牙人 at 00:40| 東京 ☁| Comment(0) | TrackBack(1) | モジュール | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。