是否可以检查站点以查看它是否响应HTTPS请求? (PHP)

时间:2016-06-02 18:59:18

标签: php http url https get-headers

我有一个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)。 / p>

我正在关注这个问题:How can I check if a URL exists via PHP?,除了我要检查HTTPS。

我的逻辑流程是否正确,或者是否有我遗漏的东西?

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

1 个答案:

答案 0 :(得分: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 }