搜索
系统检测到您的用户名不符合规范:

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

浏览:2064 发布日期:2013年08月24日 分类:功能实现 关键字: Behaviro Ping 行为扩展
使用thinkphp的行为扩展Ping搜索引擎服务
Ping搜索引擎可以在发布新文章的同时通知搜索引擎,其实最主要的是通知搜索引擎,这篇文章是我原创的,当然了,搜索引擎不是你告诉他原创就原创了,但如果文章是原创的话好处当然是有的。

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

上代码: <!--?php
defined('THINK_PATH') or exit();

class pingBehavior extends Behavior{
// 先定义要Ping的地址
// @author LiaoCaiXin
// blog_name 站点名称
// blog_home 站点地址
// blog_url 文章地址
// rss_url 站点rss地址
protected $services = array(
'baidu' =--> 'http://ping.baidu.com/ping/RPC2',
'google' => 'http://blogsearch.google.com/ping/RPC2',
'bloglines' => 'http://www.bloglines.com/ping'
);
//拼接xml
//@author LiaoCaiXin
public function run(&$data){
$xml = '<!--?xml version="1.0" encoding="UTF-8"?-->
<methodcall>
<methodname>weblogUpdates.extendedPing</methodname>
<params>
<param><value>' . $data['blog_name'] . '</value>
<param><value>' . $data['blog_home'] . '</value>
<param><value>' . $data['blog_url'] . '</value>
<param><value>' . $data['rss_url'] . '</value>
</params>
</methodcall>';
$xml_baidu = '<!--?xml version="1.0" encoding="UTF-8"?-->
<methodcall>
<methodname>weblogUpdates.extendedPing</methodname>
<params>
<param><value><string>' . $data['blog_name'] . '</string></value>
<param><value><string>' . $data['blog_home'] . '</string></value>
<param><value><string>' . $data['blog_url'] . '</string></value>
<param><value><string>' . $data['rss_url'] . '</string></value>
</params>
</methodcall>';
foreach($this->services as $k => $s){
$s = trim($s);
if(!empty($s)){
$c = curl_init();
$header = array(
"Content-type: text/xml;charset=\"utf-8\"",
"Accept: text/xml"
);
curl_setopt_array(
$c,
array(
CURLOPT_URL => $s,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => $header,
CURLOPT_POSTFIELDS => $k === 'baidu' ? $xml_baidu : $xml
)
);
$content=curl_exec($c);
curl_close($c);
}
}
}
}
调用也很简单,在模型和控制器中调用都行,我是在控制器调用的。
示例代码: //更新Ping
//需要更新的url列表
$update = array(
'blog_name' => '魔力贝',
'blog_home' => 'http://www.molibei.com',
'blog_url' => U('article/index@www.molibei.com',array('id'=>$id)),
'rss_url' => U('rss/index@www.molibei.com')
);
tag('ping',$update);
就可以实现发布文章的同时Ping搜索引擎了
原文地址:http://www.molibei.com/article/5.htm
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
yantaohua
积分:781 等级:LV2
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /