ホームページ >バックエンド開発 >PHPチュートリアル >PHP の Web サイトに ping サービスを手動で追加する

PHP の Web サイトに ping サービスを手動で追加する

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-13 13:25:42937ブラウズ

php
の Web サイトに ping サービスを手動で追加します

転載元: http://lwxshow.com/php-setting-ping-manual-google-baidu

?

ping サービスを手動で追加します

【1】Google の ping サービスの PHP 実装

RPC の詳細については、Wikipedia を参照してください。Google ping サービスの標準:
RPC エンドポイント: http://blogsearch.google.com/ping/RPC2
呼び出しメソッド名: weblogUpdates。 extendPing
パラメータ: (以下にリストされているのと同じ順序で渡す必要があります)
サイト名
サイト URL
更新を確認するページの URL
対応する RSS、RDF、またはの URL Atom feed
オプション: ページ コンテンツのカテゴリ名 (またはタグ)。 「|」文字で区切って複数の値を指定できます。
まず、Google の RPC エンドポイントを POST するための CURL 関数を作成します。

コードをコピーコードは次のとおりです:
function postUrl($url, $postvar) {
$ch =curl_init();
$headers = array(
"POST ".$url." HTTP/1.0",
"Content-type: text/xml;charset="utf-8"",
"Accept: text/xml",
"Content-length: ".strlen($postvar)
);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $ headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postvar);
$res =curl_exec ($ch);
curl_close ($ch);
return $res;
}

メインのカールを記述した後は、送信されたデータを Google の XML-RPC 標準に従って組み立てるだけです。詳細なリクエストの例については、ここをクリックして公式のケースを参照してください。
たとえば、私のコードは次のように書かれています:

コードをコピーコードは次のとおりです:
$googleXML = <<

weblogUpdates.extendedPing


Web サイトを迅速に組み込むことができる PHP 実装メソッド

< ; param>
http://s.jb51.net


http://s jb51.net/archives/47.html


http://s.jb51.net/feed


END;
$res = postUrl('http://blogsearch.google.com/ping /RPC2′, $googleXML);
//リターンが成功したかどうかの判定は以下の通り(Google pingのインターフェース記述による)
if (strpos($res, "0") )
echo "PING 成功";
else
echo "PING 失敗";

OK、これは単に Google の PING サービスを実装するだけです。コードを変更してこの関数を実装できます。
[*2] Baidu の ping サービスの PHP 実装 (このタイトルは実際には DT)
Baidu の ping サービス XML コードは Google とは常に異なります:
Baidu Blog Ping サービスの概要Baidu Blog Ping サービスの詳細については、http://www.baidu.com/search/blogsearch_help.html#n7 を参照してください。
Baidu の ping サービスも XML-RPC 標準プロトコルに基づいていますが、Google の ping サービスと異なるのは、Baidu の ping によって送信される XML 形式が異なることです。コンテンツをラップするために文字列ノードを使用する必要があります。
例:

コードをコピーコードは次のとおりです:


weblogUpdates.extendedPing


>
http://s.jb51.net/


http://s.jb51.net/archives/47.html


http://s.jb51.net/feed
< /param>



上記の Google インターフェースに従って、送信された XML の内容を変更するだけで済みます。もちろん、Baidu ping サービスが返す判定も Google のものとは異なるため、それに応じた変更を行うこともできます。は PHP コードです:


コードをコピー
コードは次のとおりです: $baiduXML = <<

weblogUpdates .extendedPing

Web サイトをすぐに組み込めるようにする PHP 実装メソッド
http://s.jb51.net
<文字列>http://s.jb51.net/archives/47.html
<値>< ; string>http://s.jb51.net/feed
EOT;
$res = postUrl('http://ping.baidu.com/ping/RPC2', $baiduXML);
//復帰が成功したかどうかの判定は以下の通り(インターフェース記述による) Baidu ping)
if (strpos($res, "0"))
echo "PING 成功";
else
echo "PING 失敗";

上記のコードは PHP の ping サービスを実装できます。それでは、Baidu ping サービス コードを提供します。これをユニークなものにしているのは誰ですか?

コードをコピー

コードは次のとおりです:

function postUrl($url, $postvar){

$ch =curl_init();
$headers = array(
"POST ".$url ." HTTP/1.0",
"Content-type: text/xml; charset="gb2312"",
"Accept: text/xml",
"Content-length: ".strlen($ postvar)
);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postvar);
$res =curl_exec ($ch);
curl_close ($ch);
return $res;
}
$baiduXML = "

weblogUpdates.extendedPing

<値><文字列>スクリプト ホーム
<値> ;http://www.jb51.net
http://www .jb51 .net/a/15222.html
http://www.jb51.net

";
$res = postUrl('http://ping.baidu.com/ping /RPC2 ', $baiduXML);
if ( strpos($res, "0") )
{
echo "PING 成功";
}
else
{
echo "PING 失敗";
}
?>


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。