百度实时推送代码 curl

2014年07月15日 13:18 by:佚名

导读: 百度实时推送有助于新文章被百度及时收录.另一篇文章"php 实时推送代码"中用的fsochopen来实时推送sitemap,有的主机关闭了fsochopen函数,这时候可以用curl推送.

百度实时推送代码, php curl post方法推送给百度, 百度实时推送有助于我们发布的新文章被百度及时收录. 

在另一篇文章"php 实时推送代码" 中用的是fsochopen的方法来实时推送sitemap的, 但是有的主机因为考虑到服务器安全的因素关闭了fsochopen函数, 那么下面的curl推送代码就派上用场了.

百度实时推送  

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