各大搜索引擎Ping服务 php实现方法

各大搜索引擎Ping服务 php实现方法  让网站快速收录
【1】手动Ping服务地址: 
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 php


【2】自动Ping 服务应用编程接口(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 html


上面提供的,包括前文说的ping服务,有些我试了好用 有些很差用,要用那些那个看状况而定。这个本身根据网络环境等自行测试下,适合的就是最好的,没有推荐。 
好吧,说了那么多上面的,下面的是重点,也就是如何实现ping服务,wordpress是能够经过后台实现的,其余的那?好比没有ping服务功能的博客程序什么的怎么办?据纷纭所知道的,博客系统中好用的WORDPRESS自带PING功能,毋庸置疑,ASP类的Z-BLOG貌似能够经过插件实现这个功能。其余的博客系统?其余的?没有其余,个人选择惟有wordpress,没有其余,只要惟一。呵呵,不开玩笑了。下面说下php来实现ping的服务的问题,这个针对其余不支持ping功能的网站或者系统之类的,你们能够自行开发个接口实现。好比DEDECMS的二次开发就能够,纷纭最近在研究这个项目。 
须要说的是百度的ping和谷歌的提交格式是不一样的,下面简单的说说,分别给百度和谷歌作个介绍,首先介绍的是谷歌(为啥不是百度,OK?别那么纠结,会有的……): 
【*1】谷歌的ping服务的php的实现 
关于RPC的详细介绍能够移步维基百科,谷歌ping服务的标准: 
RPC端点: http://blogsearch.google.com/ping/RPC2 
调用方法名: weblogUpdates.extendedPing 
参数: (应按照以下所列的相同顺序传送) 
站点名 
站点URL 
须要检查更新的页面URL 
相应的RSS、RDF或Atom种子的URL 
可选:页面内容的分类名称(或标签)。您能够指定多个值,之间用'|'字符进行分隔。 
首先要写一个CURL的函数,来POST谷歌的RPC端点: web

复制代码代码以下:

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写好了以后,剩下就是要根据谷歌的XML-RPC标准组装发送的数据了,详细的请求例子能够参考官方案例,点这里。 
例如个人代码是这样写的: 编程

复制代码代码以下:

$googleXML = <<<END 
<?xml version="1.0″?> 
<methodCall> 
<methodName>weblogUpdates.extendedPing</methodName> 
<params> 
<param> 
<value>Ping服务的php实现方法,让网站快速被收录</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); 
//下面是返回成功与否的判断(根据谷歌ping的接口说明) 
if (strpos($res, "<boolean>0</boolean>")) 
echo "PING成功"; 
else 
echo "PING失败"; 


OK,这个就能够简单的实现谷歌的PING服务了。能够根据代码自行修改实现这个功能。 
【*2】百度的ping服务的php的实现(这个标题真DT) 
百度的ping服务xml代码是跟谷歌不一样的,百度老是会有本身的特色: 
介绍下百度博客ping服务,百度博客Ping服务的详细介绍,请移步:http://www.baidu.com/search/blogsearch_help.html#n7。 
百度的ping服务也是基于XML-RPC标准协议,可是与谷歌ping服务不一样的是百度的ping发送的xml格式不一样,咱们须要使用string节点包裹内容。 
例如: api

复制代码代码以下:

<?xml version="1.0″ encoding="UTF-8″?> 
<methodCall> 
<methodName>weblogUpdates.extendedPing</methodName> 
<params> 
<param> 
<value><string>Ping服务的php实现方法,让网站快速被收录</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> 


根据上面提到的谷歌接口,咱们只要改变一下提交的xml内容便可,固然百度ping服务返回的判断也是跟谷歌的不一样,也能够作相应的修改, 
下面是php的代码: 网络

复制代码代码以下:

$baiduXML = <<<EOT 
<?xml version="1.0″ encoding="UTF-8″?> 
<methodCall> 
<methodName>weblogUpdates.extendedPing</methodName> 
<params> 
<param><value><string>Ping服务的php实现方法,让网站快速被收录</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); 
//下面是返回成功与否的判断(根据百度ping的接口说明) 
if (strpos($res, "<int>0</int>")) 
echo "PING成功"; 
else 
echo "PING失败"; 


上面的代码就能够实现php的ping服务了。好吧,下面再给各位看管提供一个百度的ping服务代码,没办法谁让他那么独特那? curl

复制代码代码以下:
<?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失败";  }  ?> 
相关文章
相关标签/搜索