百度ping方法使用示例 自动ping百度
2014-01-26 00:00
615 查看
使用方法访问的时候自动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表示成功。
相关文章推荐
- Node.js实现mysql连接池使用事务自动回收连接的方法示例
- C#+.Ashx+Jquery.AutoComplete 仿百度谷歌模糊自动查询两种使用方法
- JSuggest自动匹配下拉框使用方法(示例代码)
- JSuggest自动匹配下拉框使用方法(示例代码)
- 织梦使用百度Ueditor编辑器上传图片自动生成绝对路径实现方法(测试可用)
- win7系统使用百度搜索资料时自动跳转到搜狗搜索的故障原因及解决方法
- 百度 PCS API的使用方法
- jQuery表格插件ParamQuery简单使用方法示例
- 使用C#PING主机的方法
- AspNetPager.dll 分页控件使用方法、含有代码示例 [转]
- 在Golang代码中如何自动生成版本号的方法示例
- Java使用注解和动态代理实现方法调用时的日志记录示例
- firewalld·使用方法示例
- SEO(搜索引擎优化)网站文章自动提交推送百度的方法
- 使用PreparedStatement的setString方法会自动在数据库相应表项后面补空格解决办法
- Swift - 自动布局库SnapKit的使用详解(配置、使用方法、样例)
- php之Smarty模板使用方法示例详解
- iOS富文本的使用方法示例详解
- SAFEARRAY使用方法示例