-1

我有一个 PHP 函数:

function http_protocol()
{
  return ($_SERVER['SERVER_PORT'] == 443) ? 'https' : 'http';
}

但是,当我源自的域只是HTTP,并且我想动态链接到 HTTPS 的域时,条件返回 http。

所以,我的想法是我可以检查该站点是否响应 HTTPS 请求,如果是,则返回 https,否则返回 http。

我认为使用@get_headers 数组是可行的,并检查 [0] 值是否具有 HTTPS,但我无法确认是否存在 HTTPS 标头(例如 HTTPS/1.1)。

我一直在关注这个问题:如何通过 PHP 检查 URL 是否存在?,但我会检查 HTTPS。

我的逻辑流程是否正确,还是我遗漏了什么?

编辑:在特定示例中,我只会检查我可以控制的网站。所以我事先知道内容是否通过 HTTPS 提供。

4

1 回答 1

0

您可以使用 curl 库进行检查。

  $ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 1); 
curl_exec($ch);
curl_close($ch);
if(curl_getinfo($ch)['http_code'] == 200){existing } 
于 2016-06-02T19:41:33.190 回答