PHPCMS实现自动推送URL到百度站长平台
发布:smiling 来源: PHP粉丝网 添加日期:2016-01-28 14:49:45 浏览: 评论:0
我们一起来看一篇关于PHPCMS实现自动推送URL到百度站长平台,希望此教程能够帮助到各位朋友.
百度站长平台开放url推送接口,可以使用调用接口的形式主动及时推送url给百度,下面演示在PHPCMS系统中如何使用接口自动推送URL到百度站长平台.
在PHPCMS的libs/functions/global.func.php文件中添加一个百度推送函数:
- /**
- * 百度站长平台链接推送
- * @param $bdurls url数组
- * @date 2015.8.8 15:19
- */
- function push_baidu($bdurls){
- $api = 'http://data.zz.baidu.com/urls?site=www.dayecn.com&token=自己去百度站长平台获取';
- $ch = curl_init();
- $options = array(
- CURLOPT_URL => $api,
- CURLOPT_POST => true,
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_POSTFIELDS => implode("\n", $bdurls),
- CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
- );
- curl_setopt_array($ch, $options);
- $result = curl_exec($ch);
- $result = json_decode($result, 1);
- return $result;
- }
在需要推送的动作,如发布一篇文章,修改一篇文章,或者生成一篇静态文章页的时候可以调用这个方法,比如我想在批量生成静态页的地方调用这个接口,去modules/content/crete_html.php文件的batch_show方法里,调用上面定义的方法:
- foreach($rs as $r) {
- if($r['islink']) continue;
- $this->db->table_name = $tablename;
- $r2 = $this->db->get_one(array('id'=>$r['id']));
- if($r2) $r = array_merge($r,$r2);
- //判断是否为升级或转换过来的数据
- if(!$r['upgrade']) {
- $urls = $this->url->show($r['id'], '', $r['catid'],$r['inputtime']);
- } else {
- $urls[1] = $r['url'];
- }
- $bdurls[] = $r['url'];
- $this->html->show($urls[1],$r,0,'edit',$r['upgrade']);
- } //phpfensi.com
- //推送百度平台
- $push_result = push_baidu($bdurls);
- $msg = '';
- if($push_result['success'] < 1){
- $msg = '百度联盟推送链接失败!';
- }
最后几行是修改后新加的代码,首先要把更新哪些静态页的url放进数组里,再调用这个方法传参即可.
要在其他动作如添加或者编辑文章的时候推送,原理是一样的,找到对应的地方调用推送方法就行了
百度链接提交三种方式:
1、主动推送:最为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。
2、sitemap:您可以定期将网站链接放到sitemap中,然后将sitemap提交给百度。百度会周期性的抓取检查您提交的sitemap,对其中的链接进行处理,但收录速度慢于主动推送。
3、手工提交:一次性提交链接给百度,可以使用此种方式。
下面介绍使用curl主动推送链接的方式PHP示例,使用curl扩展:
- $urls = array(
- 'http://www.example.com/1.html',
- 'http://www.example.com/2.html',
- );
- $api = 'http://data.zz.baidu.com/urls?site=www.dayecn.com&token=Db0ZoYUOwUyEp87Z';
- $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);
- echo $result;
首先要在百度站长平台验证站点,然后获取token密钥,才有权限推送url给百度。百度站长平台:http://zhanzhang.baidu.com
可以在发布一篇文章的时候就把这篇文章的url推送给百度站长平台,或者批量推送,通过返回的$result状态判断推送是否成功,返回的状态码说明:
- pse: separate; border-spacing: 0px; -webkit-text-stroke-width: 0px;">
Tags: PHPCMS自动推送 PHPCMS站长平台
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)