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");
将以上文件保存,然后上传到服务器,覆盖原始文件即可
看看我的网站的截图: