📜  如何检查页面是从PHP中的“https”还是“http”调用的?(1)

📅  最后修改于: 2023-12-03 15:24:51.315000             🧑  作者: Mango

如何检查页面是从PHP中的“https”还是“http”调用的?

在 PHP 中,我们可以使用 $_SERVER['HTTPS'] 变量来检查页面是否是从 HTTPS 中调用的,如果该变量被定义,则页面是从 HTTPS 中调用的,否则是从 HTTP 中调用的。

以下是一个简单的代码示例:

if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on'){
    // 页面通过 HTTPS 访问
} else {
    // 页面通过 HTTP 访问
}

在上面的代码中,我们首先使用 isset() 函数来检查 $_SERVER['HTTPS'] 是否被设置,然后再使用比较运算符 == 来检查它的值是否等于 "on",如果两个条件都成立,那么页面就是从 HTTPS 中调用的,否则就是从 HTTP 中调用的。

除了上面的示例代码,我们还可以使用下面的快捷方法:

if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on'){
    $protocol = 'https://';
} else {
    $protocol = 'http://';
}

在上面的代码中,我们首先使用 isset() 函数来检查 $_SERVER['HTTPS'] 是否被设置,然后再使用比较运算符 === 来检查它的值是否等于 "on",如果两个条件都成立,那么将变量 $protocol 的值设置为 "https://",否则将其设置为 "http://"

这样,我们就可以使用变量 $protocol 来确定页面是从 HTTPS 还是 HTTP 中调用的了。例如:

$url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

在上面的代码中,我们首先将变量 $url 初始化为协议(即 $protocol 变量的值)和主机名(即 $_SERVER['HTTP_HOST'] 变量的值)的组合,然后加上请求 URI(即 $_SERVER['REQUEST_URI'] 变量的值),最终得到完整的 URL。