对php 判断http还是https,以及获得当前url的方法详解

PHP 判断 HTTP 还是 HTTPS

在 PHP 中,判断当前是否使用 HTTPS 协议可以使用 `$_SERVER['HTTPS']` 变量。该变量会返回值为 `on` 或 `off`,如果当前使用的是 HTTPS 协议,则返回 `on`,否则返回 `off`。

下面是一个使用 `$_SERVER['HTTPS']` 变量判断当前使用的协议的示例代码:

```

if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') {

// 当前使用的是 HTTPS 协议

echo 'Current protocol is HTTPS.';

} else {

// 当前使用的是 HTTP 协议

echo 'Current protocol is HTTP.';

}

?>

```

获取当前 URL 的方法

要获取当前页面的 URL,在 PHP 中可以使用 `$_SERVER['REQUEST_URI']` 和 `$_SERVER['HTTP_HOST']` 变量。其中,`$_SERVER['REQUEST_URI']` 变量返回当前页面的相对路径,而 `$_SERVER['HTTP_HOST']` 变量返回当前页面的主机名。

下面是一个使用 `$_SERVER['REQUEST_URI']` 和 `$_SERVER['HTTP_HOST']` 变量获取当前页面 URL 的示例代码:

```

$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http';

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

echo 'Current URL is: ' . $url;

?>

```

上面的代码中,首先判断当前使用的协议,然后使用 `$_SERVER['HTTP_HOST']` 和 `$_SERVER['REQUEST_URI']` 变量拼接出当前页面的 URL。

完整示例代码

下面是一个完整的示例代码,可以在浏览器中访问验证:

```php

PHP 判断 HTTP 还是 HTTPS,以及获取当前 URL 的方法

$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http';

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

if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') {

$protocol_text = 'HTTPS';

} else {

$protocol_text = 'HTTP';

}

echo "

当前使用的协议

";

echo "当前使用的协议是 {$protocol_text}。";

echo "使用的变量是

\$_SERVER['HTTPS']
。";

echo "

当前 URL

";

echo "当前访问的 URL 是 {$url}。";

echo "使用的变量是

\$_SERVER['REQUEST_URI']
\$_SERVER['HTTP_HOST']
。";

?>

```

在上面的代码中,首先使用 `$protocol` 和 `$url` 变量获取当前使用的协议和当前 URL,然后根据这两个变量输出相应的内容。使用了 `

` 和 `` 标签对内容进行了分组,使用了 `
` 标签对使用的变量进行了代码高亮处理。