7 способов определить, является ли URL-адрес HTTP или HTTPS в PHP

При работе с веб-приложениями на PHP часто необходимо определить, использует ли данный URL-адрес протокол HTTP или HTTPS. Эта информация может быть полезна для различных целей, таких как перенаправление пользователей на защищенные страницы или создание динамического контента на основе протокола. В этой статье мы рассмотрим семь различных методов с примерами кода, которые помогут вам проверить, является ли URL-адрес HTTP или HTTPS в PHP.

Метод 1: использование переменной $_SERVER[’HTTPS’]
Пример кода:

if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') {
    // HTTPS URL
} else {
    // HTTP URL
}

Метод 2: использование функции parse_url()
Пример кода:

$url = "http://www.example.com";
$parsedUrl = parse_url($url);
if ($parsedUrl['scheme'] === 'https') {
    // HTTPS URL
} else {
    // HTTP URL
}

Метод 3: использование функции strpos()
Пример кода:

$url = "https://www.example.com";
if (strpos($url, 'https://') === 0) {
    // HTTPS URL
} else {
    // HTTP URL
}

Метод 4. Использование регулярных выражений
Пример кода:

$url = "https://www.example.com";
if (preg_match('/^https:/i', $url)) {
    // HTTPS URL
} else {
    // HTTP URL
}

Метод 5: использование функции filter_var()
Пример кода:

$url = "http://www.example.com";
if (filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED) === 'https') {
    // HTTPS URL
} else {
    // HTTP URL
}

Метод 6. Использование библиотеки cURL
Пример кода:

$url = "https://www.example.com";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
$info = curl_getinfo($ch);
if ($info['url'] === $url) {
    // HTTPS URL
} else {
    // HTTP URL
}
curl_close($ch);

Метод 7: использование функции get_headers()
Пример кода:

$url = "https://www.example.com";
$headers = get_headers($url);
if (strpos($headers[0], 'HTTP/1.1 200 OK') !== false) {
    // HTTPS URL
} else {
    // HTTP URL
}

В этой статье мы рассмотрели семь различных методов проверки того, является ли URL-адрес HTTP или HTTPS в PHP. Эти методы включают использование переменной $_SERVER['HTTPS'], анализ URL-адреса с помощью parse_url(), использование strpos()и регулярных выражений, а также использование filter_var(), используя библиотеку cURL и функцию get_headers(). Каждый метод имеет свои преимущества и может использоваться в зависимости от конкретных требований вашего PHP-приложения. Используя эти методы, вы можете эффективно определить протокол URL-адреса и выполнить соответствующие действия.