Можно ли проверить сайт, чтобы увидеть, отвечает ли он на запрос HTTPS? (PHP)

У меня есть функция 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).

Я следил за этим вопросом: Как я могу проверить, существует ли URL через PHP?, кроме того, я бы проверял HTTPS.

Мой логический поток корректен, или я что-то упускаю?

Редактировать: в конкретном примере я бы только проверять сайты, которые я контролирую. Так что я заранее знаю, подается ли контент по HTTPS или нет.

-1

Решение

Вы можете проверить с помощью библиотеки 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 }
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]