百度自动推送,将要推送的链接整合到一个txt里面,获取txt里的链接推送给百度。 

百度推送PHP代码完善版

百度官方给出的PHP推送实例如下: 

$urls = array( 
'http://www.example.com/1.html', 
'http://www.example.com/2.html', 
); 
$api = 'http://data.zz.baidu.com/urls?site=xxxx&token=xxxxxxx'; 
$ch = curl_init(); 
$options = array( 
CURLOPT_URL => $api, 
CURLOPT_POST => true, 
CURLOPT_RETURNTRANSFER => true, 
CURLOPT_POSTFIELDS => implode("\n", $urls), 
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'), 
); 
curl_setopt_array($ch, $options); 
$result = curl_exec($ch); 
echo $result;

我们可以看到这个arry里面就是你要推送的网址,如果你有几百甚至上千条网址,那这就会变得很麻烦

我们可以将要推送的网址整合到一个txt里面进行推送

代码如下:

<?php
    $str = file_get_contents('url.txt');//将整个文件内容读入到一个字符串中
    $str_encoding = mb_convert_encoding($str, 'UTF-8', 'UTF-8,GBK,GB2312,BIG5');//转换字符集(编码)
    $arr = explode("\r\n", $str_encoding);//转换成数组

    //去除值中的空格
    foreach ($arr as &$row) {
        $row = trim($row);
    }

    unset($row);
    //得到后的数组
  echo  "<pre>";
    var_dump($arr);
  echo  "</pre>";


//$urls = array(
 //   'http://www.example.com/1.html',
 //   'http://www.example.com/2.html',
//);

$api = 'http://data.zz.baidu.com/urls?site=www.xxxx.net&token=xxxxx';
$ch = curl_init();
$options =  array(
    CURLOPT_URL => $api,
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => implode("\n", $arr),
    CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;

?>

我们url.txt放在本php程序目录,和本程序是同一级目录。推送成功显示如下:

百度推送PHP代码完善版

然后我们放到目录下,在宝塔设置定时任务即可完成URL自动推送!

我们为了这个PHP的安全可以给他限制IP访问,仅仅允许一个固定IP才能访问,防止被他人恶意访问造成多次推送的情况。

参考这篇文章:《PHP实现限制IP访问网站的方法

比如我的IP是 1.1.1.1 只有这个IP才能进行百度推送,其他IP访问不可推送!