天天看点

帝国站长php主动推送,【技术分享】百度主动推送功能——帝国CMS

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

方法二:

一次推送每天发布的新文章链接

在根目录下新建立一个文件

代码如下

require(dirname(__FILE__).'/e/class/connect.php');

require(dirname(__FILE__).'/e/class/q_functions.php');

require(dirname(__FILE__).'/e/class/db_sql.php');

require(dirname(__FILE__).'/e/data/dbcache/class.php');

$link=db_connect();

$empire=new mysqlquery();

$pageurl=$public_r['newsurl'];

$tbname='';

//默认表

if(empty($tbname))

{

$tbname=$public_r['tbname'];

$mid=$etable_r[$tbname][mid];

$yhid=$etable_r[$tbname][yhid];

}

if(empty($tbname)||InfoIsInTable($tbname))

{

printerror('ErrorUrl','',1);

}

//替换

function RepSpeRssStr($str){

$str=stripSlashes($str);

$str=ehtmlspecialchars($str,ENT_QUOTES);

$str=str_replace(array('[!--empirenews.page--]','[/!--empirenews.page--]','[',']'),array('','','',''),$str);

return $str;

}

$query="select ".ReturnSqlListF($mid)." from {$dbtbpre}ecms_".$tbname.ReturnYhAndSql($yhadd,$add,1)." where to_days(from_unixtime(`truetime`)) = to_days(now()) order by id desc limit 200";//这里的200 可以改大,根据你每天加的文章条数决定

$sublen=$public_r['rsssub'];

$sql=$empire->query($query);

while($r=$empire->fetch($sql))

{

//标题链接

$titleurl=RepSpeRssStr(sys_ReturnBqTitleLink($r));

if(!stristr($titleurl,'://'))

{

$titleurl=$sitedomain.$titleurl;

}

$urls[]=$titleurl;//同方法一上面类似 ,主要看下你填写的域名地址是/还是整个域名,我没有做判断获取域名,自己手工下很方便

//$urls[]="你的域名".$titleurl;

}

//这里是测试的,第一次打开看下,是不是当天发布的网站链接 如果是 说明可以用删除下面2句

print_r($urls);

exit;

//删除结束

$api = '站长后台获取的地址';

$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;

db_close();

$empire=null;

?>

版本没有测试,老版本我不知道提交参数这些有没有更改,老版本建议方法二可以看到效果