百度ping方法使用示例 自动ping百度

  使用方法访问的时候自动ping到百度,我的方法是生成缓存,更新缓存的时候自动ping百度,返回结果为0表示成功。

  

复制代码 代码如下:

  $pingarcurl='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

  $arcping = new Ping('管理资源吧',$pingarcurl,get_domain(),'http://www.glzy8.com');

  $arcping->pingbaidu();

  

复制代码 代码如下:

  class ping{

  private$title;//博客名称

  private$hosturl;//博客首页地址

  private$arturl;//新发文章地址

  private$rssurl;//博客rss地址

  private$baiduXML;//百度XML结构

  private$baiduRPC;//百度XML地址

  publicfunction__construct($title,$arturl,$hosturl,$rssurl)

  {

  if(empty($title)||empty($arturl))

  returnfalse;

  $this->title=$title;

  $this->hosturl=$hosturl;

  $this->rssurl=$rssurl;

  $this->arturl=$arturl;

  $this->baiduRPC='http://ping.baidu.com/ping/RPC2';

  $this->baiduXML='<?xmlversion=\"1.0\"encoding=\"UTF-8\"?>';

  $this->baiduXML.='<methodCall>';

  $this->baiduXML.='<methodName>weblogUpdates.extendedPing</methodName>';

  $this->baiduXML.='<params>';

  $this->baiduXML.='<param><value><string>'.$this->hosturl.'</string></value></param>';

  $this->baiduXML.='<param><value><string>'.$this->title.'</string></value></param>';

  $this->baiduXML.='<param><value><string>'.$this->arturl.'</string></value></param>';

  $this->baiduXML.='<param><value><string>'.$this->rssurl.'</string></value></param>';

  $this->baiduXML.='</params>';

  $this->baiduXML.='</methodCall>';

  }

  publicfunctionpingbaidu()

  {

  $ch=curl_init();

  $headers=array(

  'User-Agent:request',

  'Host:ping.baidu.com',

  'Content-Type:text/xml',

  );

  curl_setopt($ch,CURLOPT_URL,$this->baiduRPC);

  curl_setopt($ch,CURLOPT_HEADER,1);

  curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

  curl_setopt($ch,CURLOPT_POST,1);

  curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);

  curl_setopt($ch,CURLOPT_POSTFIELDS,$this->baiduXML);

  $res=curl_exec($ch);

  curl_close($ch);

  //return$res;

  return(strpos($res,"<int>0</int>"))?true:false;

  }

  }

  functionget_domain()

  {

  /*协议*/

  $protocol='http://';

  /*域名或IP地址*/

  if(isset($_SERVER['HTTP_X_FORWARDED_HOST'])){

  $host=$_SERVER['HTTP_X_FORWARDED_HOST'];

  }elseif(isset($_SERVER['HTTP_HOST'])){

  $host=$_SERVER['HTTP_HOST'];

  }else{

  /*端口*/

  if(isset($_SERVER['SERVER_PORT'])){

  $port=':'.$_SERVER['SERVER_PORT'];

  if((':80'==$port&'http://'==$protocol)||(':443'==$port&'https://'==$protocol)){

  $port='';

  }

  }else{

  $port='';

  }

  if(isset($_SERVER['SERVER_NAME'])){

  $host=$_SERVER['SERVER_NAME'].$port;

  }elseif(isset($_SERVER['SERVER_ADDR'])){

  $host=$_SERVER['SERVER_ADDR'].$port;

  }

  }

  return$protocol.$host;

  }

  //$arc=newPing('网站标题','更新的URL地址','网站域名','rss地址');

  //$arc=newPing('你网站的title',get_arcurl($id),get_domain(),'http://www.abc.com/rss.php');

  //echo$arc->pingbaidu();

  //返回结果为0表示成功。