PHP自动推送URL到百度站长平台

2015-11-27 浏览:1310
PHP自动推送URL到百度站长平台
评论:(0)复制地址

百度站长平台开放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']);

}

//推送百度平台

$push_result = push_baidu($bdurls);

$msg = '';

if($push_result['success'] < 1){

$msg = '百度联盟推送链接失败!';

}


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


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


评论:(0)复制地址
发布:苗景云 | 分类:IT技术&设计 | Tags:

相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。