在博客中我们也需要适当的利用SEO来推广下自己博客。发表文章的同时提交百度收录就可以满足我们的需求 。

我们每天发的文章不会超过5篇,而百度收录的每天是50+,所以完全符合我们的需求,这里我们只是需要添加一个功能就可以实现的。
相当于程序的扩展吧,如果有这个需求的话,请认真阅读完本文。
第一步,我们需要了解百度收录,这个东西。地址
如果不想去那边看的,我可以详细的说下,首先你需要注册一个账号,然后再后台进去之后绑定你的站点,绑定的方式很多,要么改文件头,要么上传文件到很目录,我个人有轻微强迫症,然后我选择的是添加别名解析。

每个站点生成的别名解析的不一样。

添加完成之后就可以验证通过,然后

我们可以看到API地址了。
第二步,我们需要用到CURL函数,点击这里了解
我们需要一个方法来提交CURL,然后再发表文章的时候调用这个函数即可。
控制器为:
$id = M('Article')->add($data);
if($id && data['a_view']==0){
$this->success("发表文章完成!转调到文章列表,",'articleList');
}elseif(data['a_view']!=0){
$bdinfo = json_decode(bdurls('http://www.loveteemo.com/article-'.$id.'.html'), true);
if($bdinfo['error']){
$message = '推送失败:'.$bdinfo['message'].' 错误代码:'.$bdinfo['error'];
}else{
$message = '成功推送'.$bdinfo['success'].'条,今天还可推送'.$bdinfo['remain'].'条';
}
$this->success("发表文章完成!转调到文章列表,".$message,'articleList');
}else{
$this->error('发表文章失败!');
}函数为:
//提交百度收录
function bdurls($url){
$urls = is_array($url) ? $url : array($url);
$api = 'http://data.zz.baidu.com/urls?site=www.loveteemo.com&token=khVlYsBQtnXPcV36';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
return $result;
}api地址和控制器的地址是根据自己的地址修改的。注意复制api地址的时候的几个空格
然后发表文章的时候,会自动提交到百度收录。
第三步,这个时候我们需要考虑的是那么值钱发表的文章怎么办呢?
这里我写了一个控制器来批量提交
public function seo(){
$res = M('article')->where("a_view > 0")->getField('a_id',true);
for($i=0;$i<count($res);$i++){
$urls[] = 'http://www.loveteemo.com/article-'.$res[$i].'.html';
}
$api = 'http://data.zz.baidu.com/urls?site=www.loveteemo.com&token=khVlYsBQtnXPcV36';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
var_dump(json_encode($result));
}至于这个方法放在那里都可以,因为是访问一次就行,所以我写了一个Test控制器。如果有其他问题可以留言询问。
上一篇: PHP中HTTP防盗链技术...