• 欢迎访问小杰博客网站
  • 欢迎访问小杰博客网站哦

实现发布文章同步Ping搜索引擎

未分类 小杰 9年前 (2014-12-24) 912次浏览 已收录 0个评论

使用thinkphp的行为扩展Ping搜索引擎服务
Ping搜索引擎可以在发布新文章的同时通知搜索引擎,其实最主要的是通知搜索引擎,这篇文章是我原创的,当然了,搜索引擎不是你告诉他原创就原创了,但如果文章是原创的话好处当然是有的。

今天就用ThinkPHP的行为来实现Ping,其实代码很简单,也可以自行添加不同的搜索引擎Ping地址。

上代码:

  1. <!–?php
  2. defined(‘THINK_PATH’) or exit();
  3.  
  4. class pingBehavior extends Behavior{
  5.     // 先定义要Ping的地址
  6.         // @author LiaoCaiXin
  7.         // blog_name 站点名称
  8.         // blog_home 站点地址
  9.         // blog_url     文章地址
  10.         // rss_url        站点rss地址
  11.     protected $services = array(
  12.         ‘baidu’ =–> ‘http://ping.baidu.com/ping/RPC2’,
  13.         ‘google’ => ‘http://blogsearch.google.com/ping/RPC2’,
  14.         ‘bloglines’ => ‘http://www.bloglines.com/ping’
  15.         );
  16.        //拼接xml
  17.        //@author LiaoCaiXin
  18.     public function run(&$data){
  19.         $xml = ‘<!–?xml version=”1.0″ encoding=”UTF-8″?–>
  20.         <methodcall>
  21.         <methodname>weblogUpdates.extendedPing</methodname>
  22.         <params>
  23.         <param><value>‘ . $data[‘blog_name’] . ‘</value>
  24.         <param><value>‘ . $data[‘blog_home’] . ‘</value>
  25.         <param><value>‘ . $data[‘blog_url’] . ‘</value>
  26.         <param><value>‘ . $data[‘rss_url’] . ‘</value>
  27.         </params>
  28.         </methodcall>‘;
  29.         $xml_baidu = ‘<!–?xml version=”1.0″ encoding=”UTF-8″?–>
  30.         <methodcall>
  31.         <methodname>weblogUpdates.extendedPing</methodname>
  32.         <params>
  33.         <param><value><string>‘ . $data[‘blog_name’] . ‘</string></value>
  34.         <param><value><string>‘ . $data[‘blog_home’] . ‘</string></value>
  35.         <param><value><string>‘ . $data[‘blog_url’] . ‘</string></value>
  36.         <param><value><string>‘ . $data[‘rss_url’] . ‘</string></value>
  37.         </params>
  38.         </methodcall>‘;
  39.         foreach($this->services as $k => $s){
  40.             $s = trim($s);
  41.             if(!empty($s)){
  42.                 $c = curl_init();
  43.                 $header = array(
  44.                     “Content-type: text/xml;charset=\”utf-8\””,
  45.                     “Accept: text/xml”
  46.                     );
  47.                 curl_setopt_array(
  48.                     $c,
  49.                     array(
  50.                         CURLOPT_URL => $s,
  51.                         CURLOPT_RETURNTRANSFER => true,
  52.                         CURLOPT_POST => true,
  53.                         CURLOPT_HTTPHEADER => $header,
  54.                         CURLOPT_POSTFIELDS => $k === ‘baidu’ ? $xml_baidu : $xml
  55.                         )
  56.                     );
  57.                 $content=curl_exec($c);
  58.                 curl_close($c);
  59.             }
  60.         }
  61.     }
  62. }
复制代码

调用也很简单,在模型和控制器中调用都行,我是在控制器调用的。
示例代码:

  1. //更新Ping
  2.         //需要更新的url列表
  3.         $update = array(
  4.             ‘blog_name’ => ‘魔力贝’,
  5.             ‘blog_home’ => ‘http://www.molibei.com’,
  6.             ‘blog_url’ => U(‘article/index@www.molibei.com’,array(‘id’=>$id)),
  7.             ‘rss_url’ => U(‘rss/index@www.molibei.com’)
  8.             );
  9.         tag(‘ping’,$update);
复制代码

就可以实现发布文章的同时Ping搜索引擎了


小杰博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:实现发布文章同步Ping搜索引擎
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址