欢迎您的光临,本博所发布之文章皆为作者亲测通过,如有错误,欢迎通过各种方式指正。

分享  PHPCMS实现自动推送URL到百度站长平台

CMS 网络 1199 0评论

百度站长平台开放url推送接口,可以使用调用接口的形式主动及时推送url给百度,下面演示在PHPCMS系统中如何使用接口自动推送URL到百度站长平台。


在PHPCMS的libs/functions/global.func.php文件中添加一个百度推送函数:

/**
* 百度站长平台链接推送
* @param $bdurls url数组
* @date 2016.8.22 15:19
*/
function push_baidu($bdurls){
$api = 'http://data.zz.baidu.com/urls?site=www.ittxx.cn&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']);
}
//推送百度平台
$push_result = push_baidu($bdurls);
$msg = '';
if($push_result['success'] < 1){
$msg = '百度联盟推送链接失败!';
}

最后几行是修改后新加的代码,首先要把更新哪些静态页的url放进数组里,再调用这个方法传参即可。


要在其他动作如添加或者编辑文章的时候推送,原理是一样的,找到对应的地方调用推送方法就行了


百度链接提交三种方式:

1、主动推送:最为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。

2、sitemap:您可以定期将网站链接放到sitemap中,然后将sitemap提交给百度。百度会周期性的抓取检查您提交的sitemap,对其中的链接进行处理,但收录速度慢于主动推送。

3、手工提交:一次性提交链接给百度,可以使用此种方式。


推送接口

接口调用地址:

http://data.zz.baidu.com/urls?site=www.ittxx.cn&token=Zo1Nlv6cx4Eu6wNE

参数名称是否必选参数类型说明
sitestring在搜索资源平台验证的站点,比如www.example.com
tokenstring在搜索资源平台申请的推送用的准入密钥


下面介绍使用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.ittxx.cn&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://ziyuan.baidu.com 


可以在发布一篇文章的时候就把这篇文章的url推送给百度站长平台,或者批量推送,通过返回的$result状态判断推送是否成功,返回的状态码说明:

字段是否必选参数类型说明
successint成功推送的url条数
remainint当天剩余的可推送url条数
not_same_sitearray由于不是本站url而未处理的url列表
not_validarray不合法的url列表

成功返回示例:

{

    "remain":4999998,

    "success":2,

    "not_same_site":[],

    "not_valid":[]

}


更多详情请查看:https://ziyuan.baidu.com (数据引入--链接提交)


转载请注明: ITTXX.CN--分享互联网 » PHPCMS实现自动推送URL到百度站长平台

最后更新:2018-10-22 11:19:36

赞 (1) or 分享 ()
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽