在博客中我们也需要适当的利用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防盗链技术...