我有一个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提供。
答案 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 }