SEO必备:用PHP提交GOOGLE和百度PING服务的通用类
《SEO必备:用PHP提交GOOGLE和百度PING服务的通用类》要点: 这是编程之家学院的PHP提交GOOGLE和百度PING服务的通用类。 GOOGLE和百度的PING服务: ping是基于XML_RPC标准协议的更新通告服务,用于博客把内容更新快速通知给百度,以便百度及时进行抓取和更新。百度明确表示每个站每天可以提交的url是有数量限制的。 在提交PING服务后,百度和谷歌的返回成功的内容: 百度: <?xml version="1.0" encoding="UTF-8"?> <methodResponse> <params> <param> <value> <int>0</int> </value> </param> </params> </methodResponse> 谷歌: <?xml version="1.0"?> <methodResponse><params> <param><value><struct> <member> <name>flerror</name><value><boolean>0</boolean></value> </member> <member> <name>message</name><value>Thanks for the ping.</value> </member> </struct></value></param> </params></methodResponse> 下面是编程之家 52php.cn的PING服务的通用类: 调用实例: $ping = new pingSearchEngine('网站名称XXX','http://www.52php.cn/','http://www.52php.cn/jiaocheng/20.html','http://www.52php.cn/rss.php'); echo "PING返回结果:rn"; print_r($ping->result); #当为false时则全部失败。百度或谷歌有一个以上成功即返回数组。 返回结果如下: 属性$result为false时则全部失败。百度或谷歌有一个以上成功即返回数组: Array( [baidu] => true [google]=> true ) 编程之家通用类: /** GOOGLE和百度的PING服务: * ping是基于XML_RPC标准协议的更新通告服务,用于博客把内容更新快速通知给百度,以便百度及时进行抓取和更新。百度明确表示每个站每天可以提交的url是有数量限制的 * 作者:http://www.52php.cn/ * 版权:可以随意使用,但务必保留这些注释信息。 */ class pingSearchEngine { public $result = false; private $serachEngine= array('baidu','google'); private $pingUrl = array( 'http://ping.baidu.com/ping/RPC2', #百度PING地址。 'http://blogsearch.google.com/ping/RPC2' #谷歌PING地址。 ); private $chkReStr = array( '<int>0</int>', #百度返回代码中的检查是否有成功的代码。 '<boolean>0</boolean>' #谷歌的成功代码 ); private $pingXML; /** 初始化参数:四个均不可为空。 * @param string $webName 网站名称。 * @param string $webIndex 网站首页地址。 * @param string $scriptUrl 更新的网页所在地址。 * @param string $rssUrl RSS所在地址。 * @param string $encode 编码 **/ public function __construct($webName='', $webIndex='', $scriptUrl='', $rssUrl='' ,$encode='utf-8') { if(empty($encode) || empty($webName) || empty($webIndex) || empty($scriptUrl) || empty($rssUrl) ) return; if(substr($webIndex,4)!=='http') return; $this->_getXML($encode, $webName, $webIndex, $scriptUrl, $rssUrl ); $this->postUrl(); } private function _getXML($encode, $rssUrl ) { $this->pingXML = "<?xml version=&;1.0&; encoding=&;${encode}&;?> <methodCall> <methodName>weblogUpdates.extendedPing</methodName> <params> <param><value><string>${webName}</string></value></param> <param><value><string>${webIndex}</string></value></param> <param><value><string>${scriptUrl}</string></value></param> <param><value><string>${rssUrl}</string></value></param> </params> </methodCall>"; } private function postUrl() { $ch = curl_init(); $res = array(); for($i=0; $i<2 ; $i++) { $url = $this->pingUrl[$i]; $chkStr = $this->chkReStr[$i]; $headers = array( "POST ".$url." HTTP/1.0", "Content-type: text/xml; charset=&;gb2312&;", "Accept: text/xml", "Content-length: ".strlen($this->pingXML) ); curl_setopt($ch, CURLOPT_URL, $url); #目标URL curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); #不输出返回的内容 curl_setopt($ch, CURLOPT_POST, 1); #使用POST方式 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); #设置头信息。 curl_setopt($ch, CURLOPT_POSTFIELDS, $this->pingXML); #要发送的内容。 $seRe = curl_exec ($ch); #echo $seRe."rnrn<br />rn"; if ( strpos($seRe, $chkStr)!==false ) { $res[$this->serachEngine[$i]] = true; # ping成功, }else{ $res[$this->serachEngine[$i]] = false; } } curl_close($ch); $this->result = $res ? $res : false; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |