关于百度实时推送的问题,很多人再问。
其实参考百度文章很容易自己写出来的,但是有些人可能太忙,所以这里总结一下:
第一步:打开“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://你的网址”.$updateinfo[‘url’],”你的网址”,”xxxxx”);