Home  >  Article  >  php教程  >  实现发布文章同步Ping搜索引擎的Behavior

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

WBOY
WBOYOriginal
2016-06-07 11:44:081035browse

使用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元

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:Memcache 笔记 Next article:RUIBlog开发手记之分类