【SEO优化】-百度站长‘API提交’PHP自动推送学习(二)-单页面自动推送

【SEO优化】-百度站长‘API提交’PHP自动推送学习(二)-单页面自动推送

wpbkj
2021-06-04 / 1,299 阅读
温馨提示:
本文最后更新于2023年07月27日,已超过443天没有更新,若内容或图片失效,请发送邮件至admin@wpbkj.com。

简介:[SEO优化]-百度站长‘API提交’PHP自动推送学习(一)-简介
在这一篇,我们学习如何使用PHP进行单页面自动推送

使用PHP实现不同页面访问时自动推送

首先把完整代码奉上、下面再讲解:

<?php
    //构建函数判断当前页面是否为https
    function is_https() {
        if ( !empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') {
            return true;
        } elseif ( isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) {
            return true;
        } elseif ( !empty($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off') {
            return true;
        }else{
            return false;
        }
    }
    $hs=is_https();
    //判断是否为https若是,则为变量qz赋值为https,若不是则赋值为http
    if($hs){
        $qz="https";
    }else{
        $qz="http";
    }
    //获取当前页面url
    $url=$qz.'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
//判断域名是否符合
    if($_SERVER['HTTP_HOST']=='(修改)在这里输入域名(要和百度站长域名相同,例:www.wpbkj.com,不要斜杠、不要前缀)'){
    $urls=array($url);
$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);
$RE="推送成功";
    }else{
$RE="推送失败,请检查token是否与页面对应";
    }
//(修改)您可将变量RE放到任何你想在站中显示的地方,这里直接输出,下面讲
    echo $RE;
    ?>

如果你想把它用到自己网站上,请按照注释中提示修改的地方做相应的改动

详细介绍:

首先理清一下思路
我们大概需要解决以下几点:

1、自动获取当前页面全网址
2、自动推送后分析返回信息

1、自动获取当前页面全网址

这里需要涉及到PHP全局变量的知识
我们用$_SERVER['HTTP_HOST']获取当前域名
用$_SERVER['REQUEST_URI']获取域名后缀
使用$_SERVER['HTTPS']判断是否为https

代码(加注释):

//构建函数判断当前页面是否为https
    function is_https() {
        if ( !empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') {
            return true;
        } elseif ( isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) {
            return true;
        } elseif ( !empty($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off') {
            return true;
        }else{
            return false;
        }
    }
    $hs=is_https();
    //判断是否为https若是,则为变量qz赋值为https,若不是则赋值为http
    if($hs){
        $qz="https";
    }else{
        $qz="http";
    }
    //获取当前页面url
    $url=$qz.'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    echo '当前页面网址为:'.$url;

结果:
获取网址

2、自动推送

获取网址成功了、下面我们只需要简单的修改之前简介中提到的代码就行了
代码(加注释):

//判断域名是否相符
if($_SERVER['HTTP_HOST']=='www.wpbkj.com'){
    $urls=array($url);
$api = 'http://data.zz.baidu.com/urls?site=https://www.wpbkj.com&token=*******';
$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);
//返回推送结果
$RE="推送成功";
    }else{
$RE="推送失败,请检查token是否与页面对应";
    }
//直接输出结果
    echo $RE;

试运行

结果:
运行结果
成功

实战应用

下面我们就将代码稍作修改运用到网站中去
看一下我的效果:
效果
这里提供一个简单配置方法

第一步

将本文开头的代码修改后保存到bdts.php文件中并放到网站根目录下
然后在你需要推送的页面适合位置放入以下代码(必须为PHP页面):

<?php
include("bdts.php");
echo $RE;
?>

看是否有提示信息出现,判断是否成功
这一篇就到这里了、下一篇我们将如何通过输入指定网址进行推送
如果觉得有用的话,点个赞吧,如有问题,联系方式见“关于”页面

7
知识共享许可协议
MySSL 安全签章
TrustAsia 安全签章