php判断当前的协议是否为HTTPS

180it 2021-05-18 PM 1258℃ 0条

今天在调试微信的JSAPI支付的时候一直出现url地址与后台地址不一致的问题,排除了微信服务商那边的设置问题后,就锁定了后台的代码逻辑。发现发送的协议与当前的协议不同,就做了个HTTP与HTTPS协议的判断,发现问题解决了。

php判断当前的协议是否为HTTPS
下面给出了两种判断当前网址是否为HTTPS协议的方法,大家可以参考一下!

方法1:

例1:

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;
    }
    return false;
}

PS:如果当前为HTTPS协议,则返回TRUE,否则返回 FALSE

例2:

if(isset($_SERVER["HTTP_X_CLIENT_SCHEME"])){
    $scheme = $_SERVER["HTTP_X_CLIENT_SCHEME"];
}elseif(isset($_SERVER["REQUEST_SCHEME"])){
    $scheme = $_SERVER["REQUEST_SCHEME"];
}else{
    $scheme = 'http';
}
echo $scheme;

PS:如果是HTTPS协议,则输出https,如果是HTTP协议则输出http

方法2:

php 使用正则表达式来判断一个网址是否为HTTPS协议!

使用正则表达式,可以很轻松的对已知的网址做出HTTP与HTTPS协议的判断!

$url = 'https://www.feiniaomy.com/';
$preg = '/^http(s)?:\\/\\/.+/';
if(preg_match($preg,$url)){
    echo '是HTTPS协议';
}else{
    echo '不是HTTPS协议';
}

来源:https://www.feiniaomy.com/post/718.html

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

php判断当前的协议是否为HTTPS