HeQee

Feed Rss

PHP实现Google ping服务快速收录

08.05.2011, PHP, Share, by .

玩过WORDPRESS的朋友应该都知道ping服务吧,通俗点讲它可以在更新文章的时候向Google、baidu及其他支持ping的搜索引擎发送指令然后招呼它们过来,不用傻等他们过来收录了,化被动为主动了。直接贴代码了,很简单的。

 

<?php
 /**
 +------------------------------------------------------------------------------
 * 通知搜索引擎过来抓去最新发布的内容。秒收不是梦
 * 目前仅支持Google和Baidu
 +------------------------------------------------------------------------------
 */
class ping {

 public $method,$callback;
 
 public function method ($site_name,$site_url,$update_url,$update_rss){
  $this->method = "
  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
  <methodCall>
    <methodName>weblogUpdates.extendedPing</methodName>
    <params>
   <param><value>{$site_name}</value></param>
   <param><value>{$site_url}</value></param>
   <param><value>{$update_url}</value></param>
   <param><value>{$update_rss}</value></param>
    </params>
  </methodCall>";
  return $this->method;
 }

 public function _post($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;
 }

 public function google(){
  $this->callback = $this->_post('http://blogsearch.google.com/ping/RPC2', $this->method);
  return strpos($this->callback, "<boolean>0</boolean>") ? true : false;

 }

 public function baidu(){
  $this->callback = $this->_post('http://ping.baidu.com/ping/RPC2', $this->method);
  return strpos($this->callback, "<int>0</int>") ? true : false;
 }

}
?>

<?php

/*
//测试
$ping = new ping();
$ping->method("HeQee",
      "http://www.heqee.com",
      "http://www.heqee.com/php-google-ping/",
      "http://www.heqee.com/feed/");

//google
if($ping->google()){
 echo "google ping success!";
}else{
 echo "google ping fail";
}
echo "<br>";

//baidu
if($ping->baidu()){
 echo "baidu ping success!";
}else{
 echo "baidu ping fail";
}
*/

?>

声明: 本站遵循 署名-非商业性使用-相同方式共享 3.0 共享协议.转载请注明转自 HeQee

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


无觅相关文章插件,快速提升流量