menu


2016年3月25日金曜日

pingの送信方法


pingとは、ブログを更新した時に更新したよ!って検索エンジンやランキングサイトに自動で送信するシステム!
普通のブログは、だいたいある機能です。しかし、ここbloggerには、Googleにしか自動で送信しません。
無料の送信サイトに登録すれば、1日に1回検索して送信してくれます。
ただし、複数ある人は、サイト数の登録が必要となります。面倒ですよね!
そこで、調べてみました。自分で送る方法!
手動になりますが、以下の方法で、送れます。
必要なのは、phpサーバー!
パソコンの方は、ネットからphpサーバーソフトをダウンロードして環境を作って下さい。
アンドロイドの方は、アンドロイド用phpアプリをインストールして下さい。
参考サイト
"http://mizna.hatenablog.com/entry/2015/03/15/042602"
私は、ここのソースを改造して以下を作りました。これは、選択したサイトのpingを発行するソースです。複数ブログ対応に改造しました。基本は、参考サイトのソースを関数化して、送信元サイトを選択できるようにして、ping送信を基本送信とサイト固有の送信の2回送信するように改造しました。ファイル名は、index.php固定です。違う名前で使用する方は、ソース内のファイル名も変えてください。
赤字部分は、自分のサイトに合わせて変更して下さい。
<html>
<head>
<title>send ping</title>
<meta http-equiv=" Content Type" content="text/html;charset=EUC-JP">
</head>
<body>
<h1>送信サイト</h1>
<hr>
<form action='index.php' method='POST'>
<select name='SAITO'>
<option value=0>blogger開発講座
<option value=1>出会い応援
<option value=2>フクロモモンガ飼育日記
<option value=3>隙間時間で稼ぐ
</select>

<input type=submit valeu='送信'>

</form>
<?php
//共通ping先
function fsend($blog_name,$blog_url,$ping_next_servers) {
$ping_servers = array(
"http://ping.dendou.jp/",
"http://blogsearch.google.co.jp/ping/RPC2",
"http://blogsearch.google.com/ping/RPC2",
"http://ping.fc2.com",
"http://ping.freeblogranking.com/xmlrpc/",
"http://rpc.reader.livedoor.com/ping",
"http://blog.goo.ne.jp/XMLRPC",
"http://rpc.weblogs.com/RPC2"
);
// url重複回避
$ping_servers = array_unique($ping_servers);

// weblogUpdates.pingのXMLデータ
$content = '<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param><value>'.$blog_name.'</value></param>
<param><value>'.$blog_url.'</value></param>
</params>
</methodCall>
';
 $headers = array(
'Content-Type: application/xml',
'Content-Length: '.strlen($content)
);
$context = stream_context_create(
array(
'http'=>array(
'method'=>'POST',
 'header'=>implode( "\r\n", $headers ),
'content'=>$content
 )
 )
);
foreach($ping_servers as $ping_server){
$http_response_header = null;
$response = file_get_contents($ping_server,false,$context);
echo $ping_server,"...",$response,"<br>";
};

foreach($ping_next_servers as $ping_server){
$http_response_header = null;
$response = file_get_contents($ping_server,false,$context);
echo $ping_server,"...",$response,"<br>";
};
}

function funcsend($saito) {
//サイトタイトル
$blog_names = array(
"blogger開発講座",
"出会い応援",
"フクロモモンガ飼育日記",
"隙間時間で稼ぐ"
);
//各サイトのrssアドレス
$blog_urls = array(
"http://makeblogger117.blogspot.jp/feeds/posts/default?alt=rss",
"http://deai5050.blogspot.jp/feeds/posts/default?alt=rss",
"http://momonga102.blogspot.jp/feeds/posts/default?alt=rss",
"http://kasgu.blogspot.jp/feeds/posts/default?alt=rss"
);

//サイト専用ping先
$ping_next_servers = array(
   array(//0
      "http://ping.blogmura.com/xmlrpc/*********"
   ),
   array(//1
    ),
   array(//2
       "http://ping.blogmura.com/xmlrpc/*********",
       "http://blog.with2.net/ping.php/1821020/*********"
    ),
   array(//3
      "http://ping.blogmura.com/xmlrpc/*********"
    )
);

fsend($blog_names[$saito],$blog_urls[$saito],$ping_next_servers[$saito]);

print $blog_names[$saito].$saito."<br>\n";
}

if(isset($_REQUEST['SAITO'])){7
print $_REQUEST['SAITO']."<br>\n";
  funcsend($_REQUEST['SAITO']);
};
?>
</body>
</html>


ソースコピーは、ここからどうぞ!
これは、ソース内に送信先を登録して、起動し、送りたい送信元サイトを選び送信ボタンで送信します。各サイトのrssアドレスが必要ですが、bloggerなら、私の赤字を自分ブログに変えるだけです。
この処理は何度も実行しないで下さい。ブログを更新した後に、1回だけが基本です。やり過ぎは、スパムと判断されて、削除対象になる恐れがあります。使用は、自分の責任の元お使い下さい。

0 件のコメント:

コメントを投稿