百度站长实时网址批量主动推送 PHP教程

2020-06-03 21:18 原创
阅读数:138

一、修改说明:便于站长使用。 二、教程讲解: 新建文件 baidu_push.php ...

一、修改说明:便于站长使用。
二、教程讲解:
1、新建文件 baidu_push.php
$beginToday = date(strtotime(date("Y-m-d",time())));//今天 开始时间 ✔
$beginThisweek = date(strtotime('-1 monday', time()));//本周 开始时间 ✔
$beginLastweek = date(strtotime('-2 monday', time()));//上周 开始时间
$beginThismonth = date(strtotime(date('Y-m', time())));//本月 开始时间
$beginThismonths = date(strtotime('-1 day',$beginThismonth));//上月最后一天 开始时间
$baidu_push_url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];//获取URL
//存在记录(每天提交数量有限,解决多次提交的问题)
if($baidu_push = DB::fetch_first("SELECT * FROM ".DB::table('baidu_push')." WHERE url = '$baidu_push_url'")){
	$sid = $baidu_push['sid'];//ID
	$gxs = $baidu_push['gxs']+1;//更新次数
	$tjs = $baidu_push['tjs']+1;//提交次数
	$sta = $baidu_push['status'];//状态
	if($sta == '1'){//状态等于1 一周提交一次
		if($beginThisweek > $baidu_push['dateline']){
			$urls_push = array(
				$baidu_push_url,
			);
			$api_push = 'http://data.zz.baidu.com/urls?site='.$_SERVER['HTTP_HOST'].'&token=这里是16位字母和数字组合的字符串';
			$ch_push = curl_init();
			$options_push =  array(
				CURLOPT_URL => $api_push,
				CURLOPT_POST => true,
				CURLOPT_RETURNTRANSFER => true,
				CURLOPT_POSTFIELDS => implode("\n", $urls_push),
				CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
			);
			curl_setopt_array($ch_push, $options_push);
			$result_push = curl_exec($ch_push);
			DB::update('baidu_push', ['updatetime' => time(), 'gxs' => $gxs, 'tjs' => $tjs], 'sid = '.$sid);
		}
	}else{//状态等于0 第二天提交
		if($beginToday > $baidu_push['dateline']){
			$urls_push = array(
				$baidu_push_url,
			);
			$api_push = 'http://data.zz.baidu.com/urls?site='.$_SERVER['HTTP_HOST'].'&token=这里是16位字母和数字组合的字符串';
			$ch_push = curl_init();
			$options_push =  array(
				CURLOPT_URL => $api_push,
				CURLOPT_POST => true,
				CURLOPT_RETURNTRANSFER => true,
				CURLOPT_POSTFIELDS => implode("\n", $urls_push),
				CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
			);
			curl_setopt_array($ch_push, $options_push);
			$result_push = curl_exec($ch_push);
			DB::update('baidu_push', ['updatetime' => time(), 'gxs' => $gxs, 'tjs' => $tjs], 'sid = '.$sid);
		}
	}
} else {//不存在记录 新增数据
	$urls_push = array(
		$baidu_push_url,
	);
	$api_push = 'http://data.zz.baidu.com/urls?site='.$_SERVER['HTTP_HOST'].'&token=这里是16位字母和数字组合的字符串';
	$ch_push = curl_init();
	$options_push =  array(
		CURLOPT_URL => $api_push,
		CURLOPT_POST => true,
		CURLOPT_RETURNTRANSFER => true,
		CURLOPT_POSTFIELDS => implode("\n", $urls_push),
		CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
	);
	curl_setopt_array($ch_push, $options_push);
	$result_push = curl_exec($ch_push);
	$result_400 = str_replace('{"error":400,"message":"over quota"}',"400",$result_push);//获取400状态
	if($result_400 == '400'){//提交失败状态0
		DB::insert('baidu_push', ['url' => $baidu_push_url, 'dateline' => time(), 'updatetime' => time(), 'gxs' => '1', 'tjs' => '0', 'status' => '0']);
	} else {//提交成功状态1
		DB::insert('baidu_push', ['url' => $baidu_push_url, 'dateline' => time(), 'updatetime' => time(), 'gxs' => '1', 'tjs' => '1', 'status' => '1']);
	}
}
2、新建数据表 baidu_push
字段说明:
url = 链接地址
dateline = 添加时间
updatetime = 更新时间
gxs = 更新次数
tjs = 提交次数
status = 状态
不懂可以联系中文站长协助开发
三、模板调用:
1、php源码调用:《改为<
《?php include_once("baidu_push.php") ?》
2、DZ论坛调用:
{eval include TPLDIR.'/php/baidu_push.php';}
3、百度主动推送:http://gongju.chinaadmin.cn/baidupush/
4、百度自动提交:http://gongju.chinaadmin.cn/baidusubmit/
编辑推荐