Posted in PHP onJanuary 26, 2014
使用方法访问的时候自动ping到百度,我的方法是生成缓存,更新缓存的时候自动ping百度,返回结果为0表示成功。
$pingarcurl='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $arcping = new Ping('三水点靠木',$pingarcurl,get_domain(),'https://3water.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表示成功。
百度ping方法使用示例 自动ping百度
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@