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


  本文标签:百度,ping,ping百度

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

复制代码 代码如下:

$pingarcurl=http://.$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI];
$arcping = new Ping(脚本之家,$pingarcurl,get_domain(),http://www.jb51.net);
$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表示成功 。