Dayucms技术

dayucms百度数据实时推送解决方案
更新时间:2014-12-17 11:46 标签:百度实时推送 阅读次数:

今天偶然进入百度站长平台,发现sitemap里有了新功能:实时推送。实时推送基于POST协议,用于网站把网页及包含的结构化数据迅速提交给百度,使得网站在百度保持最新状态。此方法的确是非常非常不错的方法,第一时间将自己的网站原创内容推送给百度。根据百度站长后台的提示,实现实时推送有两种方案:是curl推送和post推送。今天根据实际情况给大家讲解下如何将实时推送整合到dayucms里面,实现添加内容,然后就直接提交给百度。因为实时推送是需要站长开通了sitemap权限才可以的,因此大鱼cms还未将此做成插件,只是满足下大家有权限,有需求的人使用

第一步:打开“include/extends.func.php”,在最底部加上如下代码:

function tobaidu($url,$siteurl,$access_token,$lastmod='1',$changefreq='daily',$priority='0.8'){ 
	if($lastmod)
	{
		$ntime=time(); 
		$now=date('Y-m-d',$ntime); 
	}
    $data='<?xml version="1.0" encoding="UTF-8"?>'; 
    $data.='   <urlset>'; 
    $data.='       <url>'; 
    $data.='           <loc><![CDATA['.$url.']]></loc>'; 
    $data.='           <lastmod>'.$lastmod.'</lastmod>'; 
    $data.='           <changefreq>'.$changefreq.'</changefreq>'; 
    $data.='           <priority>'.$priority.'</priority>'; 
    $data.='       </url>'; 
    $data.='   </urlset>'; 
  
    $pingurl="http://ping.baidu.com/sitemap?site=".$siteurl."&resource_name=sitemap&access_token=".$access_token; //你的接口地址 
    $curl= curl_init();// 启动一个CURL会话 
    curl_setopt($curl, CURLOPT_URL,$pingurl);// 要访问的地址 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);// 对认证证书来源的检查 
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);// 从证书中检查SSL加密算法是否存在 
    curl_setopt($curl, CURLOPT_USERAGENT,"curl/7.12.1");// 模拟用户使用的浏览器 
    curl_setopt($curl, CURLOPT_COOKIE,$cookie); 
    curl_setopt($curl, CURLOPT_REFERER,""); 
    curl_setopt($curl, CURLOPT_POST, 1);// 发送一个常规的Post请求 
    curl_setopt($curl, CURLOPT_POSTFIELDS,$data);// Post提交的数据包 
    curl_setopt($curl, CURLOPT_TIMEOUT, 30);// 设置超时限制防止死循环 
    curl_setopt($curl, CURLOPT_HEADER, 0);// 显示返回的Header区域内容 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);// 获取的信息以文件流的形式返回 
    $tmpInfo= curl_exec($curl);// 执行操作 
    if(curl_errno($curl)) { 
       echo'Errno'.curl_error($curl);//捕抓异常 
    } 
    curl_close($curl);// 关闭CURL会话 
    return$tmpInfo;// 返回数据 
}

注意在添加修改时候请使用专业的记事本,比如editpuls或者notepad++之类的,千万不要用系统自带的记事本,原因:系统自带的记事本会加入utf-8 bom,直接导致网站会多出一行空格。


第二步:打开“include/content.class.php”文件,在文件的 386行加上调用方法:

/*提交给百度*/
tobaidu("http://www.0512a.com".$updateinfo['url'],"www.0512a.com","xxxxx");


将以上文件保存,然后上传到服务器,覆盖原始文件即可

看看我的网站的截图:

Powered by 苏州网站建设:千际软件有限公司 备案号:苏ICP备14053792号

© 0512a.com 2014 - All rights reserved