百度ping接口 百度ping方法

新客网 XKER.COM 时间:2014-01-28 21:33:25  评论:

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

$pingarcurl='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$arcping = new Ping('青豆电子书',$pingarcurl,get_domain(),'http://www.qingdou.net/rss.php');
$arcping->pingbaidu();

  1. class ping{ 
  2.     private $title;    //博客名称 
  3.     private $hosturl;  //博客首页地址  
  4.     private $arturl;   //新发文章地址 
  5.     private $rssurl;   //博客rss地址 
  6.     private $baiduXML//百度XML结构 
  7.     private $baiduRPC//百度XML地址 
  8.      
  9.     public function __construct($title,$arturl,$hosturl,$rssurl
  10.     { 
  11.         if(emptyempty($title) || emptyempty($arturl)) 
  12.             return false; 
  13.         $this->title=$title
  14.         $this->hosturl=$hosturl
  15.         $this->rssurl=$rssurl
  16.         $this->arturl=$arturl
  17.         $this->baiduRPC='http://ping.baidu.com/ping/RPC2'
  18.          
  19.         $this->baiduXML = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>'
  20.         $this->baiduXML .='<methodCall>'
  21.         $this->baiduXML .=' <methodName>weblogUpdates.extendedPing</methodName>'
  22.         $this->baiduXML .='     <params>'
  23.         $this->baiduXML .='     <param><value><string>'.$this->hosturl.'</string></value></param>'
  24.         $this->baiduXML .='     <param><value><string>'.$this->title.'</string></value></param>'
  25.         $this->baiduXML .='     <param><value><string>'.$this->arturl.'</string></value></param>'
  26.         $this->baiduXML .='     <param><value><string>'.$this->rssurl.'</string></value></param>'
  27.         $this->baiduXML .=' </params>'
  28.         $this->baiduXML .='</methodCall>';  
  29.     } 
  30.     public function pingbaidu()  
  31.     {  
  32.         $ch = curl_init(); 
  33.         $headers=array
  34.             'User-Agent: request'
  35.             'Host: ping.baidu.com'
  36.             'Content-Type: text/xml'
  37.         ); 
  38.         curl_setopt($ch, CURLOPT_URL, $this->baiduRPC);  
  39.         curl_setopt($ch, CURLOPT_HEADER, 1); 
  40.         curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);  
  41.         curl_setopt($ch, CURLOPT_POST, 1);  
  42.         curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);  
  43.         curl_setopt($ch, CURLOPT_POSTFIELDS, $this->baiduXML);  
  44.         $res = curl_exec ($ch);  
  45.         curl_close ($ch);  
  46.         //return $res; 
  47.         return (strpos($res,"<int>0</int>"))?true:false;     
  48.     }  
  49.     function get_domain() 
  50.     { 
  51.         /* 协议 */ 
  52.         $protocol = 'http://'
  53.         /* 域名或IP地址 */ 
  54.         if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) { 
  55.             $host = $_SERVER['HTTP_X_FORWARDED_HOST']; 
  56.         } elseif (isset($_SERVER['HTTP_HOST'])) { 
  57.             $host = $_SERVER['HTTP_HOST']; 
  58.         } else { 
  59.             /* 端口 */ 
  60.             if (isset($_SERVER['SERVER_PORT'])) { 
  61.                 $port = ':' . $_SERVER['SERVER_PORT']; 
  62.                 if ((':80' == $port & 'http://' == $protocol) || (':443' == $port & 'https://' == $protocol)) { 
  63.                     $port = ''
  64.                 } 
  65.             } else { 
  66.                 $port = ''
  67.             } 
  68.  
  69.             if (isset($_SERVER['SERVER_NAME'])) { 
  70.                 $host = $_SERVER['SERVER_NAME'] . $port
  71.             } elseif (isset($_SERVER['SERVER_ADDR'])) { 
  72.                 $host = $_SERVER['SERVER_ADDR'] . $port
  73.             } 
  74.         } 
  75.  
  76.         return $protocol.$host
  77.     } 
  78.     //$arc = new Ping('网站标题','更新的URL地址','网站域名','rss地址');     
  79.     //$arc = new Ping('你网站的title',get_arcurl($id),get_domain(),'http://www.abc.com/rss.php'); 
  80.     //echo $arc->pingbaidu(); 
  81.     //返回结果为0 表示成功。 

如果您喜欢本文请分享给您的好友,谢谢!如想浏览更多更好的PHP教程内容,请登录:http://www.xker.com/edu/dev/2/index.html

相关内容标签:PHP教程
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)