蘋果cms和海洋cms通用的百度主動推送工具


     百度主動推送的代碼,不需要每天手動去添加地址推送,只要瀏覽器打開推送請求,不要關掉瀏覽器,程序自動幫你推送。(該插件只推送內容頁,支持動態、偽靜態、靜態頁面的推送,但這三種地址規則需要去代碼里面自行拼接)
下面來說下,用這個插件注意事項:
1、首先要在數據庫表名_data表里面加一個字段,字段名為v_push , 字段類型為 int(說俗點就是整數類型,我怕有人看不懂),字段默認值設置為0
2、下面是一些代碼上的注意事項,下面的代碼只是部分需要注意的代碼

      

<?php
require_once("include/common.php");
require_once("include/main.class.php");
require_once("data/config.cache.inc.php");
//設置每次推送的條數
$tnum = 30;
$remain = $_REQUEST['remain'];
$remain = isset($remain) ? intval($remain) : $tnum;
/*百度推送系統更新,不再限制推送條數,但remain參數保留,始終為1,為了防止官方把remain參數再次用上,這邊也把remain保留,但不影響推送功能  
百度推送好像限制了不能重復推送,否則將禁止該網站推送功能,現在只能每個地址推送一次。如果有的網友想重復推送,請往下看。
if($remain>30)
	$pagesize=30;
else
	$pagesize=$remain;
*/
$pagesize=$tnum;
$wheresql = "where v_push = 0 ";
$trow = $dsql->GetOne("Select count(*) as dd From `sea_data` $wheresql");
$totalnum = $trow['dd'];
//當總頁數小於每頁數目的時候,替換pagesize
if($totalnum<$pagesize)
	$pagesize = $totalnum;
if(empty($totalpage)) $totalpage=ceil($totalnum/$pagesize);
if($totalnum==0 || $page>$totalpage || $remain==0){
	/*---------------------------如果依然想重復推送的朋友,你可以把下面三行代碼給注釋掉。------------------------------*/
	echo "恭喜,已推送所有內容頁!";
	echo "<br>暫停3秒后繼續推送<script language=\"javascript\">setTimeout(\"baiduPush();\",3000);function baiduPush(){location.href='?remain=1';}</script></div>";
	return;
	/*---------------------------如果依然想重復推送的朋友,你可以把上面三行代碼給注釋掉。------------------------------*/
	
	
	/*---------------------------如果依然想重復推送的朋友,你可以把下面三行代碼注釋給取消掉。-------------------------*/
	//$query = "Update `sea_data` set v_push=0";
	//$dsql->ExecuteNoneQuery($query);
	//$pagesize = $tnum;
	/*---------------------------如果依然想重復推送的朋友,你可以把上面三行代碼注釋給取消掉。-------------------------*/
	}
$dsql->SetQuery("Select v_id From `sea_data` $wheresql order by v_id desc limit 0,$pagesize");
$dsql->Execute('video_list');
$plink ="";	
$urls  = array();
$ids  = array();
$result ="{}";
while($row=$dsql->GetObject('video_list'))
{
	$v_id = $row->v_id;
	/*-----------------------------------------------------------------------------------------------------------*/
	/*通過v_id來拼接內容頁的地址,動態、偽靜態、靜態的內容頁地址規律都不一樣,請大家自行修改。$cfg_basehost代表你的域名*/
	/*!!!!!!!!注意這里暫不支持已電影拼音做內容頁地址的鏈接推送!!!!!!!!!!*/
	/*-----------------------------------------------------------------------------------------------------------*/
	$plink = $cfg_basehost."/detail/index".$v_id.".html"; //來源頁面網址
	array_push($urls ,$plink);
	array_push($ids ,$v_id);
	@ob_flush();
	@flush();
}
//百度推送API地址,請各自去百度站長平台查看自己的token
$api = 'http://data.zz.baidu.com/urls?site=www.xxx.com&token=es8rdbhGjGjhUJBfNI';
$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);
$result_json = json_decode($result, true);

if(isset($result_json["remain"]))
{
	//對ids數組循環,提示推送成功id,更新對應id的v_push=1
	foreach ($ids as $vid){ 
      $query = "Update `sea_data` set v_push=1 where v_id='$vid'";
	  $dsql->ExecuteNoneQuery($query);
	  echo $result ."已成功推送URL:".$cfg_basehost."/detail/index".$vid.".html";
	  echo '<br />';
    } 
	$remaincount = $result_json["remain"];
	echo "<br>暫停3秒后繼續推送<script language=\"javascript\">setTimeout(\"baiduPush();\",3000);function baiduPush(){location.href='?remain=".$remaincount."';}</script></div>";
}
else
{
	echo "今天百度推送次數已達上限!請明天再推送!";
	echo "<br>暫停3秒后繼續推送<script language=\"javascript\">setTimeout(\"baiduPush();\",3000);function baiduPush(){location.href='?remain=1';}</script></div>";
	exit();
}
?>

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM