У мене є привід піти на крок далі і визначити, чи може сайт, до якого я підключаюсь, підтримує SSL (один проект запитує у користувача його URL, і нам потрібно перевірити, чи встановлено він наш пакет API на веб-сайті http або https).
Ось функція, яку я використовую - в основному просто зателефонуйте за URL-адресою через CURL, щоб побачити, чи працює https!
function hasSSL($url)
{
// take the URL down to the domain name
$domain = parse_url($url, PHP_URL_HOST);
$ch = curl_init('https://' . $domain);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'HEAD'); //its a HEAD
curl_setopt($ch, CURLOPT_NOBODY, true); // no body
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // in case of redirects
curl_setopt($ch, CURLOPT_VERBOSE, 0); //turn on if debugging
curl_setopt($ch, CURLOPT_HEADER, 1); //head only wanted
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); // we dont want to wait forever
curl_exec($ch);
$header = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($header === 200) {
return true;
}
return false;
}
Це найнадійніший спосіб, який я виявив не лише, якщо ви використовуєте https (як задається питанням), але якщо ви МОЖЕТЕ (або навіть ПОТРІБНО) використовувати https.
ПРИМІТКА. Можливо (хоча це не дуже ймовірно ...), що на сайті можуть бути різні сторінки http та https (тому якщо вам скажуть використовувати http, можливо, вам не потрібно змінювати ..) Переважна більшість сайтів такі самі, і, ймовірно, вам слід перенаправити вас самих, але ця додаткова перевірка має своє використання (звичайно, як я вже сказав, в проекті, де користувач вводить інформацію про свій сайт, і ви хочете переконатися з сервера)