百度实时推送代码, php curl post方法推送给百度, 百度实时推送有助于我们发布的新文章被百度及时收录.
在另一篇文章"php 实时推送代码" 中用的是fsochopen的方法来实时推送sitemap的, 但是有的主机因为考虑到服务器安全的因素关闭了fsochopen函数, 那么下面的curl推送代码就派上用场了.
- function tobaidu($url){
- $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>'.$now.'</lastmod>';
- $data.=' <changefreq>daily</changefreq>';
- $data.=' <priority>0.8</priority>';
- $data.=' </url>';
- $data.=' </urlset>';
- $pingurl="http://ping.baidu.com/sitemap?site=www.xxx.com&resource_name=sitemap&access_token=XXXXXXX";//你的接口地址
- $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;// 返回数据
- }
- $tt= tobaidu("http://www.lao8.org/"); //实时推送新发文章的url