百度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表示成功。