【发布时间】:2014-05-10 16:02:26
【问题描述】:
我不知道我应该如何在 PHP 中获取当前的请求协议。我还没有找到任何直接的$_SERVER 键。我不希望从当前请求中拆分出一个直字符串。
例如:
http://localhost/someDomain
然后:
echo $_SERVER["protocl"];
// http
应该怎么做?
【问题讨论】:
-
我不知道为什么人们投反对票...
标签: php
我不知道我应该如何在 PHP 中获取当前的请求协议。我还没有找到任何直接的$_SERVER 键。我不希望从当前请求中拆分出一个直字符串。
例如:
http://localhost/someDomain
然后:
echo $_SERVER["protocl"];
// http
应该怎么做?
【问题讨论】:
标签: php
$_SERVER["SERVER_PROTOCOL"];
是你要找的(请注意,这也会返回协议版本)
解决方法可能类似于
$protocol_version = $_SERVER["SERVER_PROTOCOL"];
$protocol = strpos($protocol_version, 'HTTPS') === false ? 'http' : 'https';
或(更一般的解决方案)
$protocol = explode('/',$_SERVER["SERVER_PROTOCOL"])[0]; //!! valid only in php > 5.3 !!
$protocol_array = explode('/',$_SERVER["SERVER_PROTOCOL"]);
$protocol = $protocol_array[0];
【讨论】: