广告位招租919838898

宝塔计划任务提取网站地图(sitemap)链接,进行百度主动推送

目录

    我之前主动推送网站地图(sitemap.xml)都是利用的推送软件来推送的。网站一多了之后,操作起来很麻烦,要复制每一个网站的api链接进行提交,而且有时候会忘记。所以在网上找到了一个方法来进行自动提交。非常好用。

    之前写到过,宝塔计划任务执行PHP文件的文章。原文:《宝塔Nginx面板 PHP文件计划任务 配置教程》。

    接下来我们就利用这个方法来做一个定时自动推送。

    首先在网站根目录建设一个PHP文件(可以放在任何目录,只要在计划任务时候填写正确的路径即可)。

    我这里将这个PHP文件命名为,Baidu_Push.php

    代码:

    <?php 
    $token='http://data.zz.baidu.com/urls?site=www.xxx&token=xxxxx';//去百度获取
    $xml_string = file_get_contents("http://www.xxx.cn/sitemap.xml");//网站xml地图
    $xml_string = trim($xml_string);
    $xml_object = simplexml_load_string($xml_string);
    $array=[];
    $i=0;
    foreach ($xml_object->url as $key=>$value){
    //默认一次提交100,适合用于泛目录的xml地图(因为刷新一次就随机变),普通的网站的会出现重复提交,慎用,非要用就把$i数值改成2000 百度不允许超过2000
        if($i===100){
            break;
        }
        $array['aa']= get_object_vars($value);
        $url.=$array['aa']['loc']."\n";
        $i++;
    }
    $urls=explode("\n",$url);
    $ch = curl_init();
    $options =  array(
        CURLOPT_URL => $token,
        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;
    ?>

    建立好这个文件后,就可以在计划任务中添加任务了。

    宝塔计划任务提取网站地图(sitemap)链接,进行百度主动推送

    这样,每天就可以自信推送了。

    推送返回:

    宝塔计划任务提取网站地图(sitemap)链接,进行百度主动推送

    2024.4.3日更新。

    注意,时间长了之后,宝塔的定时任务推送就会出现问题。“OpenSSL Error messages” 这个错误。

    解决办法:

    计划任务执行PHP出现 OpenSSL Error messages

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

    给TA打赏
    共{{data.count}}人
    人已打赏
    广告位招租919838898
    个人中心
    购物车
    优惠劵
    今日签到
    有新私信 私信列表
    搜索