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

2017-01-16 浏览:1685
PHPCMS实现自动推送URL到百度站长平台
评论:(0)复制地址

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

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

  1. /** 

  2.  * 百度站长平台链接推送 

  3.  * @param $bdurls url数组 

  4.  * @date 2015.8.8 15:19 

  5.  */ 

  6. function push_baidu($bdurls){ 

  7.     $api = 'http://data.zz.baidu.com/urls?site=www.dayecn.com&token=自己去百度站长平台获取'

  8.     $ch = curl_init(); 

  9.     $options =  array

  10.         CURLOPT_URL => $api

  11.         CURLOPT_POST => true, 

  12.         CURLOPT_RETURNTRANSFER => true, 

  13.         CURLOPT_POSTFIELDS => implode("\n"$bdurls), 

  14.         CURLOPT_HTTPHEADER => array('Content-Type: text/plain'), 

  15.     ); 

  16.     curl_setopt_array($ch$options); 

  17.     $result = curl_exec($ch); 

  18.     $result = json_decode($result, 1); 

  19.     return $result

在需要推送的动作,如发布一篇文章,修改一篇文章,或者生成一篇静态文章页的时候可以调用这个方法,比如我想在批量生成静态页的地方调用这个接口,去modules/content/crete_html.php文件的batch_show方法里,调用上面定义的方法:

  1. foreach($rs as $r) { 

  2.  if($r['islink']) continue

  3.  $this->db->table_name = $tablename

  4.  $r2 = $this->db->get_one(array('id'=>$r['id'])); 

  5.  if($r2$r = array_merge($r,$r2); 

  6.  //判断是否为升级或转换过来的数据 

  7.  if(!$r['upgrade']) { 

  8.   $urls = $this->url->show($r['id'], ''$r['catid'],$r['inputtime']); 

  9.  } else { 

  10.   $urls[1] = $r['url']; 

  11.  } 

  12.  $bdurls[] = $r['url']; 

  13.  $this->html->show($urls[1],$r,0,'edit',$r['upgrade']); 

  14. //phpfensi.com 

  15. //推送百度平台 

  16. $push_result = push_baidu($bdurls); 

  17. $msg = ''

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

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

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

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

 

global.func.php和create_html.php.zip

注意:修改global.func.php文件中的接口为自己的,覆盖即可.


经测试,目前此方法会导致phpcms后台出现PHP has encountered an Access Violation at 01F4A622之类的错误,目前正在解决

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

发表评论:

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