首页 >php教程 >php手册 >实现发布文章同步Ping搜索引擎的Behavior

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

WBOY
WBOY原创
2016-06-07 11:44:081102浏览

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

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

上代码: <!--?php<br /> defined('THINK_PATH') or exit();<br /> <br /> class pingBehavior extends Behavior{<br /> // 先定义要Ping的地址<br /> // @author LiaoCaiXin<br /> // blog_name 站点名称<br /> // blog_home 站点地址<br /> // blog_url 文章地址<br /> // rss_url 站点rss地址<br /> protected $services = array(<br /> 'baidu' =--> 'http://ping.baidu.com/ping/RPC2',<br>         'google' => 'http://blogsearch.google.com/ping/RPC2',<br>         'bloglines' => 'http://www.bloglines.com/ping'<br>         );<br>        //拼接xml<br>        //@author LiaoCaiXin<br>     public function run(&$data){<br>         $xml = '<!--?xml version="1.0" encoding="UTF-8"?--><br>         <methodcall><br>         <methodname>weblogUpdates.extendedPing</methodname><br>         <params><br>         <param><value>' . $data['blog_name'] . '</value><br>         <param><value>' . $data['blog_home'] . '</value><br>         <param><value>' . $data['blog_url'] . '</value><br>         <param><value>' . $data['rss_url'] . '</value><br>         </params><br>         </methodcall>';<br>         $xml_baidu = '<!--?xml version="1.0" encoding="UTF-8"?--><br>         <methodcall><br>         <methodname>weblogUpdates.extendedPing</methodname><br>         <params><br>         <param><value><string>' . $data['blog_name'] . '</string></value><br>         <param><value><string>' . $data['blog_home'] . '</string></value><br>         <param><value><string>' . $data['blog_url'] . '</string></value><br>         <param><value><string>' . $data['rss_url'] . '</string></value><br>         </params><br>         </methodcall>';<br>         foreach($this->services as $k => $s){<br>             $s = trim($s);<br>             if(!empty($s)){<br>                 $c = curl_init();<br>                 $header = array(<br>                     "Content-type: text/xml;charset=\"utf-8\"",<br>                     "Accept: text/xml"<br>                     );<br>                 curl_setopt_array(<br>                     $c,<br>                     array(<br>                         CURLOPT_URL => $s,<br>                         CURLOPT_RETURNTRANSFER => true,<br>                         CURLOPT_POST => true,<br>                         CURLOPT_HTTPHEADER => $header,<br>                         CURLOPT_POSTFIELDS => $k === 'baidu' ? $xml_baidu : $xml<br>                         )<br>                     );<br>                 $content=curl_exec($c);<br>                 curl_close($c);<br>             }<br>         }<br>     }<br> }调用也很简单,在模型和控制器中调用都行,我是在控制器调用的。
示例代码: //更新Ping<br>         //需要更新的url列表<br>         $update = array(<br>             'blog_name' => '魔力贝',<br>             'blog_home' => 'http://www.molibei.com',<br>             'blog_url' => U('article/index@www.molibei.com',array('id'=>$id)),<br>             'rss_url' => U('rss/index@www.molibei.com')<br>             );<br>         tag('ping',$update);就可以实现发布文章的同时Ping搜索引擎了
原文地址:http://www.molibei.com/article/5.htm

AD:真正免费,域名+虚机+企业邮箱=0元

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn