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