各大搜索引擎Ping服务 php实现方法
各大搜索引擎Ping服務(wù) php實現(xiàn)方法 ?讓網(wǎng)站快速收錄
【1】手動Ping服務(wù)地址:?
Baidu(百度)地址: http://ping.baidu.com/ping.html?
Google(谷歌)地址:http://blogsearch.google.com/ping?
Feedsky(飛遞)地址:http://ping.feedsky.com/ping.html?
Qihoo(奇虎)地址:http://so.blog.qihoo.com/pingblog.html?
IASK(愛問)地址:http://blog.iask.com/ping.php?
【2】自動Ping 服務(wù)應(yīng)用編程接口(API):?
Google(谷歌):http://blogsearch.google.com/ping/RPC2?
Feedburner:http://ping.feedburner.com?
Feedsky(飛遞):http://www.feedsky.com/api/RPC2?
Feedster:http://api.feedster.com/ping.php?
IASK(愛問):http://blog.iask.com/RPC2?
Qihoo(奇虎):http://ping.blog.qikoo.com/rpc2.php?
鮮果:http://www.xianguo.com/xmlrpc/ping.php?
抓蝦:http://www.zhuaxia.com/rpc/server.php?
Blogdigger:http://www.blogdigger.com/RPC2?
blo.gs:http://ping.blo.gs/?
ICEROCKEThttp://rpc.icerocket.com:10080/?
Moreover:http://api.moreover.com/RPC2?
Newsgator:http://rpc.newsgator.com/?
Syndic8:http://www.syndic8.com/xmlrpc.php?
Weblogs:http://rpc.weblogs.com/RPC2?
Weblogalot:http://ping.weblogalot.com/rpc.php?
上面提供的,包括前文說的ping服務(wù),有些我試了好用 有些不好用,要用那些那個看情況而定。這個自己根據(jù)網(wǎng)絡(luò)環(huán)境等自行測試下,適合的就是最好的,沒有推薦。?
好吧,說了那么多上面的,下面的是重點,也就是如何實現(xiàn)ping服務(wù),wordpress是可以通過后臺實現(xiàn)的,其他的那?比如沒有ping服務(wù)功能的博客程序什么的怎么辦?據(jù)紛紜所知道的,博客系統(tǒng)中好用的WORDPRESS自帶PING功能,毋庸置疑,ASP類的Z-BLOG貌似可以通過插件實現(xiàn)這個功能。其他的博客系統(tǒng)?其他的?沒有其他,我的選擇唯有wordpress,沒有其他,只要唯一。呵呵,不開玩笑了。下面說下php來實現(xiàn)ping的服務(wù)的問題,這個針對其他不支持ping功能的網(wǎng)站或者系統(tǒng)之類的,大家可以自行開發(fā)個接口實現(xiàn)。比如DEDECMS的二次開發(fā)就可以,紛紜最近在研究這個項目。?
需要說的是百度的ping和谷歌的提交格式是不同的,下面簡單的說說,分別給百度和谷歌做個介紹,首先介紹的是谷歌(為啥不是百度,OK?別那么糾結(jié),會有的……):?
【*1】谷歌的ping服務(wù)的php的實現(xiàn)?
關(guān)于RPC的詳細(xì)介紹可以移步維基百科,谷歌ping服務(wù)的標(biāo)準(zhǔn):?
RPC端點: http://blogsearch.google.com/ping/RPC2?
調(diào)用方法名: weblogUpdates.extendedPing?
參數(shù): (應(yīng)按照如下所列的相同順序傳送)?
站點名?
站點URL?
需要檢查更新的頁面URL?
相應(yīng)的RSS、RDF或Atom種子的URL?
可選:頁面內(nèi)容的分類名稱(或標(biāo)簽)。您可以指定多個值,之間用'|'字符進行分隔。?
首先要寫一個CURL的函數(shù),來POST谷歌的RPC端點:?
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;?
}?
主要的curl寫好了之后,剩下就是要根據(jù)谷歌的XML-RPC標(biāo)準(zhǔn)組裝發(fā)送的數(shù)據(jù)了,詳細(xì)的請求例子可以參考官方案例,點這里。?
例如我的代碼是這樣寫的:?
$googleXML = <<<END?
<?xml version="1.0″?>?
<methodCall>?
<methodName>weblogUpdates.extendedPing</methodName>?
<params>?
<param>?
<value>Ping服務(wù)的php實現(xiàn)方法,讓網(wǎng)站快速被收錄</value>?
</param>?
<param>?
<value>http://s.jb51.net</value>?
</param>?
<param>?
<value>http://s.jb51.net/archives/47.html</value>?
</param>?
<param>?
<value>http://s.jb51.net/feed</value>?
</param>?
</params>?
</methodCall>?
END;?
$res = postUrl(‘http://blogsearch.google.com/ping/RPC2′, $googleXML);?
//下面是返回成功與否的判斷(根據(jù)谷歌ping的接口說明)?
if (strpos($res, "<boolean>0</boolean>"))?
echo "PING成功";?
else?
echo "PING失敗";?
OK,這個就可以簡單的實現(xiàn)谷歌的PING服務(wù)了。可以根據(jù)代碼自行修改實現(xiàn)這個功能。?
【*2】百度的ping服務(wù)的php的實現(xiàn)(這個標(biāo)題真DT)?
百度的ping服務(wù)xml代碼是跟谷歌不同的,百度總是會有自己的特點:?
介紹下百度博客ping服務(wù),百度博客Ping服務(wù)的詳細(xì)介紹,請移步:http://www.baidu.com/search/blogsearch_help.html#n7。?
百度的ping服務(wù)也是基于XML-RPC標(biāo)準(zhǔn)協(xié)議,但是與谷歌ping服務(wù)不同的是百度的ping發(fā)送的xml格式不同,我們需要使用string節(jié)點包裹內(nèi)容。?
例如:?
<?xml version="1.0″ encoding="UTF-8″?>?
<methodCall>?
<methodName>weblogUpdates.extendedPing</methodName>?
<params>?
<param>?
<value><string>Ping服務(wù)的php實現(xiàn)方法,讓網(wǎng)站快速被收錄</string></value>?
</param>?
<param>?
<value><string>http://s.jb51.net/</string></value>?
</param>?
<param>?
<value><string>http://s.jb51.net/archives/47.html</string></value>?
</param>?
<param>?
<value><string>http://s.jb51.net/feed</string></value>?
</param>?
</params>?
</methodCall>?
根據(jù)上面提到的谷歌接口,我們只要改變一下提交的xml內(nèi)容即可,當(dāng)然百度ping服務(wù)返回的判斷也是跟谷歌的不同,也可以做相應(yīng)的修改,?
下面是php的代碼:?
$baiduXML = <<<EOT?
<?xml version="1.0″ encoding="UTF-8″?>?
<methodCall>?
<methodName>weblogUpdates.extendedPing</methodName>?
<params>?
<param><value><string>Ping服務(wù)的php實現(xiàn)方法,讓網(wǎng)站快速被收錄</string></value></param>?
<param><value><string>http://s.jb51.net</string></value></param>?
<param><value><string>http://s.jb51.net/archives/47.html</string></value></param>?
<param><value><string>http://s.jb51.net/feed</string></value></param>?
</params>?
</methodCall>?
EOT;?
$res = postUrl(‘http://ping.baidu.com/ping/RPC2′, $baiduXML);?
//下面是返回成功與否的判斷(根據(jù)百度ping的接口說明)?
if (strpos($res, "<int>0</int>"))?
echo "PING成功";?
else?
echo "PING失敗";?
上面的代碼就可以實現(xiàn)php的ping服務(wù)了。好吧,下面再給各位看管提供一個百度的ping服務(wù)代碼,沒辦法誰讓他那么獨特那??
<?php?
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 = "<?xml version=\"1.0\" encoding=\"gb2312\"?>?
<methodCall>?
<methodName>weblogUpdates.extendedPing</methodName>?
<params>?
<param><value><string>腳本之家</string></value></param>?
<param><value><string>http://www.jb51.net</string></value></param>?
<param><value><string>http://www.jb51.net/a/15222.html</string></value></param>?
<param><value><string>http://www.jb51.net</string></value></param>?
</params>?
</methodCall>";?
$res = postUrl(‘http://ping.baidu.com/ping/RPC2′, $baiduXML);?
if ( strpos($res, "<int>0</int>") )?
{?
echo "PING成功";?
}?
else?
{?
echo "PING失敗";?
}?
?>?
轉(zhuǎn)載于:https://www.cnblogs.com/bangyouseo/p/5751508.html
總結(jié)
以上是生活随笔為你收集整理的各大搜索引擎Ping服务 php实现方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 四大流派瓜分家居物流,但仍有两难选择与三
- 下一篇: 看板娘代码