PHP教程:Zblogphp百度主动推送免插件每天自动推送

PHP教程:Zblogphp百度主动推送免插件每天自动推送-第1张-菜鸟博客

百度主动推送免插件,每天自动推送,无需手动添加地址。

为了更快速的发现站点每天产生的最新内容,百度站长平台推出主动推送工具,产品上线后,部分站长反馈使用主动推送方式的技术门槛较高。最近抽空写了一个百度自主推送的代码(本人用的Zblog,其他程序拿去根据程序改一下就可用),不需要每天手动去添加地址推送,只要添加自动任务,程序自动帮你推送。

zblog百度php主动推送代码实例

亲试绝对成功!废话不多说,直接上代码。

在根目录建立文件命名为baidu.php

<?php
/**
 * Z-Blog PHP百度主动推送免插件
 * @author 菜鸟博客 http://www.newbii.cn
 * @param token=你的百度密钥(必要参数) num=默认推送10篇加首页
 * @date : 2020/01/06
 * @version
 */
require 'zb_system/function/c_system_base.php';
class Bdts
{
    private $channel;
    private $url = '';
    public function __construct($title, $link, $description)
    {
        $this->url .= $this->createElement('link', $link);
    }
    public function createElement($name, $value)
    {
        return htmlspecialchars($value) . ',';
    }
    public function addItem($title, $link, $description, $date)
    {
        $this->url .= $this->createElement('link', $link);
    }
    public function saveURL()
    {
        return $this->url;
    }
}
function getData($api,$postData = '') {
    if (!$api) {
        return false;
    }
    if (empty($postData)) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $api);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_TIMEOUT, 20); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $result = curl_exec($ch);
        curl_close($ch);
        } else {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $api);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_TIMEOUT, 20); 
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $result = curl_exec($ch);
        curl_close($ch);
    }
    if ($result) {
        return $result;
    } else {
        return null;
    }
}

function baiduTs($urls)
{
    $urls=substr($urls,0,-1);
    $urls = explode(",",$urls);
    $host=parse_url($urls[0]);
    if($host['scheme'] == 'http') $hosts = $host['host'];
    else $hosts = 'https://'.$host['host'];
    $api = 'http://data.zz.baidu.com/urls?site='.$hosts.'&token='.$_GET["token"]; 
    $result = getData($api,implode("\n", $urls));
	$result_json = json_decode($result, true);
    echo '推送总数('.count($urls).')<br />';
	if(isset($result_json['remain'])) {
		echo "已成功推送URL:<br />";
    	foreach ($urls as $vid){
			  echo $vid.'<br />';
		 } 
    } else {
    	echo "推送失败,详情错误描述请参考下方推送反馈<br />";
    }
    echo '返回状态码:'.$result.'<br />';
    echo '<a href="/college/courseinfo?id=267&amp;page=2#h2_article_title12" target="_blank">Q:如何查看推送反馈?</a>';
}
function ViewBdts()
{
    global $zbp;
    $num = isset($_GET['num']) ? $_GET['num'] : '10';
    if (!isset($_GET["token"])) {
        Http404();
        die;
    }
    $json = new Bdts($zbp->name, $zbp->host, $zbp->subname);
    $w = array(array('=', 'log_Status', 0));
    $articles = $zbp->GetArticleList(
        '*',
        $w,
        array('log_PostTime' => 'DESC'),
        array($num),
        null
    );
    foreach ($articles as $article) {
        $json->addItem($article->Title, $article->Url, ($zbp->option['ZC_RSS_EXPORT_WHOLE'] == true ? $article->Content : $article->Intro), $article->PostTime);
    }
    
    echo baiduTs($json->saveURL());
    return true;
}

ViewBdts();
RunTime();

然后保存为baidu.php,直接上传到网站的根目录,直接在浏览器输入www.newbii.cn/baidu.php?token=你的百度密钥&num=10(网址改成自己的) 就能看到主动推送成功!

参数说明:(已自动识别https,这个不用担心)

token=你的百度密钥(必要参数) num=默认推送10篇加首页(可选)

猜你喜欢

评论列表

维奇

谢谢,很需要这个,拿下了

菜鸟博客

加入getData($api,$postData = '')方法,方便拿来其他程序修改

netqing

require 'zb_system/function/c_system_base.php'; 是什么意思,能做个通用一点的么,谢谢,其他程序的怎么改

菜鸟博客

c_system_base.php是zblog的一个核心配置文件,就是通过此文件获取相关文章数据的

菜鸟博客

添加计划任务

发表评论