我們一起來(lái)看一篇關(guān)于PHPCMS實(shí)現(xiàn)自動(dòng)推送URL到百度站長(zhǎng)平臺(tái),希望此教程能夠幫助到各位朋友.
百度站長(zhǎng)平臺(tái)開(kāi)放url推送接口,可以使用調(diào)用接口的形式主動(dòng)及時(shí)推送url給百度,下面演示在PHPCMS系統(tǒng)中如何使用接口自動(dòng)推送URL到百度站長(zhǎng)平臺(tái).
在PHPCMS的libs/functions/global.func.php文件中添加一個(gè)百度推送函數(shù):
- /**
- * 百度站長(zhǎng)平臺(tái)鏈接推送
- * @param $bdurls url數(shù)組
- * @date 2015.8.8 15:19
- */
- function push_baidu($bdurls){
- $api = 'http://data.zz.baidu.com/urls?site=www.dayecn.com&token=自己去百度站長(zhǎng)平臺(tái)獲取';
- $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;
- }
在需要推送的動(dòng)作,如發(fā)布一篇文章,修改一篇文章,或者生成一篇靜態(tài)文章頁(yè)的時(shí)候可以調(diào)用這個(gè)方法,比如我想在批量生成靜態(tài)頁(yè)的地方調(diào)用這個(gè)接口,去modules/content/crete_html.php文件的batch_show方法里,調(diào)用上面定義的方法:
- 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);
- //判斷是否為升級(jí)或轉(zhuǎn)換過(guò)來(lái)的數(shù)據(jù)
- 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']);
- } //Vevb.com
- //推送百度平臺(tái)
- $push_result = push_baidu($bdurls);
- $msg = '';
- if($push_result['success'] < 1){
- $msg = '百度聯(lián)盟推送鏈接失敗!';
- }
最后幾行是修改后新加的代碼,首先要把更新哪些靜態(tài)頁(yè)的url放進(jìn)數(shù)組里,再調(diào)用這個(gè)方法傳參即可.
要在其他動(dòng)作如添加或者編輯文章的時(shí)候推送,原理是一樣的,找到對(duì)應(yīng)的地方調(diào)用推送方法就行了
百度鏈接提交三種方式:
1、主動(dòng)推送:最為快速的提交方式,推薦您將站點(diǎn)當(dāng)天新產(chǎn)出鏈接立即通過(guò)此方式推送給百度,以保證新鏈接可以及時(shí)被百度收錄。
2、sitemap:您可以定期將網(wǎng)站鏈接放到sitemap中,然后將sitemap提交給百度。百度會(huì)周期性的抓取檢查您提交的sitemap,對(duì)其中的鏈接進(jìn)行處理,但收錄速度慢于主動(dòng)推送。
3、手工提交:一次性提交鏈接給百度,可以使用此種方式。
下面介紹使用curl主動(dòng)推送鏈接的方式PHP示例,使用curl擴(kuò)展:
- $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;
首先要在百度站長(zhǎng)平臺(tái)驗(yàn)證站點(diǎn),然后獲取token密鑰,才有權(quán)限推送url給百度。百度站長(zhǎng)平臺(tái):http://zhanzhang.baidu.com
可以在發(fā)布一篇文章的時(shí)候就把這篇文章的url推送給百度站長(zhǎng)平臺(tái),或者批量推送,通過(guò)返回的$result狀態(tài)判斷推送是否成功,返回的狀態(tài)碼說(shuō)明:
- pse: separate; border-spacing: 0px; -webkit-text-stroke-width: 0px;">
新聞熱點(diǎn)
疑難解答
圖片精選