加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

SEO必备:用PHP提交GOOGLE和百度PING服务的通用类

发布时间:2020-12-13 01:59:57 所属栏目:PHP教程 来源:网络整理
导读:《SEO必备:用PHP提交GOOGLE和百度PING服务的通用类》要点: 本文介绍了SEO必备:用PHP提交GOOGLE和百度PING服务的通用类,希望对您有用。如果有疑问,可以联系我们。 这是编程之家学院的PHP提交GOOGLE和百度PING服务的通用类。 GOOGLE和百度的PING服务: pi

《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;
       } 

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读