利用php定时执行自动推送网站url到百度、360、神马站长平台

2020-02-12
223次阅读
没有评论

今天用php实现定时推送网站新增的URL到各大网站平台。

效果图:

利用php定时执行自动推送网站url到百度、360、神马站长平台

代码原理:
读取站点的sitemap.xml文件,之后提取为数组保存并curl到站长平台,推送完成之后将数据写入到本地。再次执行的时候会按照以前的文件来查询新增URL进行提交,已有的则会忽略。

PHP代码:

<?php 
// 读取文件
$file = 'https://youmain.com/sitemap.xml'; 
$content = file_get_contents($file);
preg_match_all('/<loc>(.*?)</loc>/', $content, $out, PREG_PATTERN_ORDER);
$data = $out[1];

// 判断是否已经写入内容,第一次文件不存在,所以失效
if(file_exists('addUrl_log/tj_log.txt')){
	$a = file('addUrl_log/tj_log.txt');
    foreach($a as $line => $content){
      $row[] = trim($content);
       
    }
    // 新添加进来的url进行保存
		$duibi = array_merge(array_diff($row,$data),array_diff($data,$row));
		// 赋值未提交过的地址给原本的变量名
		$data = $duibi;
  //      echo '<pre>';
		// print_r($data);
		
}


$api = 'http://data.zz.baidu.com/urls?appid=站点编号&token=准入密钥';
$ch = curl_init();
$options =  array(
    CURLOPT_URL => $api,
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => implode("n", $data),
    CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;
// {"remain":4999514,"success":486,"success_batch":486,"remain_batch":4999514}
// 返回内容解析并判断是否已经提交
$return = json_decode($result,true);
if($return['success'] == $return['success_batch']){
	$myfile = fopen("addUrl_log/tj_log.txt", "a+");
	$str = implode("n", $data);
	if(!empty($duibi)){
		fwrite($myfile,"n");
	}
	fwrite($myfile,$str);
	fclose($myfile);
	exit("推送完毕!保存完毕!共成功:".$return['success_batch']);
}

正文结束
居烽
版权声明:本站原创文章,由 居烽 于2020-02-12发表,共计1403字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码