📜  php 检查 url 是 http 还是 https - PHP (1)

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

PHP检查URL是HTTP还是HTTPS

在Web开发中,我们经常需要检查URL是http还是https。这个小技巧可以帮助我们根据需要采取不同的操作,如重定向到安全的https版本网站。

方法一:使用$_SERVER['HTTPS']

PHP的$_SERVER全局数组可以访问Web服务器的环境变量,包括HTTPS变量 。HTTPS变量提供了关于当前请求是否通过HTTPS安全访问的信息。如果存在,则返回一个非空的字符串,否则返回布尔值false

if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
  // URL is HTTPS
} else {
  // URL is HTTP
}
方法二:使用parse_url()函数

PHP的parse_url()函数将URL拆分成其组成部分,包括协议。我们可以获取协议和相应地判断URL是否为HTTP或HTTPS。

$url = 'http://www.example.com';
$url_components = parse_url($url);

if ($url_components['scheme'] == 'https') {
  // URL is HTTPS
} else {
  // URL is HTTP
}
方法三:使用filter_var()函数

PHP的filter_var()函数是一种用于验证和过滤数据的强大工具。我们可以使用它来验证URL协议是否为HTTP或HTTPS。

$url = 'http://www.example.com';

if (filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED|FILTER_FLAG_HOST_REQUIRED) !== false) {
  if(strpos($url, 'https://') !== false) {
    // URL is HTTPS
  } else {
    // URL is HTTP
  }
}

以上就是检查URL是http还是https的三种方法。我们可以根据自己的需求选择适合自己的方法。