Функция cot_url_check в Cotonti

проверяет, принадлежит ли абсолютный URL текущему сайту или его поддоменам. Она используется для валидации ссылок, чтобы убедиться, что они ведут на текущий сайт

Функция cot_url_check проверяет, принадлежит ли абсолютный URL текущему сайту или его поддоменам. Она используется для валидации ссылок, чтобы убедиться, что они ведут на текущий сайт.

Код функции cot_url_check:

function cot_url_check($url)
{
    global $sys; // Используются глобальные переменные $sys['scheme'] и $sys['domain']
    
    // Проверка, принадлежит ли URL текущему сайту или его поддоменам
    return preg_match(
        '`^' . preg_quote($sys['scheme'] . '://') . '([\w\p{L}\.\-]+\.)?' . preg_quote($sys['domain']) . '`ui',
        $url
    );
}


Объяснение:


Глобальные переменные:

$sys['scheme']: Содержит схему текущего сайта (например, http или https).
$sys['domain']: Основной домен сайта (например, example.com).


Регулярное выражение:

 
'`^' . preg_quote($sys['scheme'] . '://') . '([\w\p{L}\.\-]+\.)?' . preg_quote($sys['domain']) . '`ui'
Это регулярное выражение проверяет, начинается ли URL со схемы и домена текущего сайта или его поддоменов. Вот детали:

^: Начало строки.
preg_quote($sys['scheme'].'://'): Экранирует схему (http:// или https://) для использования в регулярном выражении.
([\w\p{L}\.\-]+\.)?: Разрешает наличие поддоменов.
[\w\p{L}\.\-]+: Любые слова, буквы (\w и \p{L}), точки и дефисы.
\.: Завершающая точка перед доменом.
?: Поддомены необязательны.
preg_quote($sys['domain']): Проверяет основной домен, например, example.com.
Флаги ui:
u: Указывает использование Unicode.
i: Игнорирует регистр.


Возврат результата:

Если URL соответствует схеме, домену или их поддоменам, функция возвращает true.
В противном случае — false.

Пример использования функции :

Сценарий:

Вы хотите проверить, принадлежит ли ссылка https://sub.example.com/page текущему сайту с доменом example.com.Код:
 

$sys['scheme'] = 'https';
$sys['domain'] = 'example.com';

$url = 'https://sub.example.com/page';

if (cot_url_check($url)) {
    echo 'URL принадлежит текущему сайту или его поддоменам.';
} else {
    echo 'URL ведет на другой сайт.';
}


Результат:

URL принадлежит текущему сайту или его поддоменам.

Итог:
Функция полезна для проверки безопасности и правильности ссылок, особенно при работе с пользовательскими вводами или внешними URL. Она помогает избежать перехода на сторонние ресурсы, если это не предусмотрено.

2 минут чтения Administrator

Комментарии (0)

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям

Автор контента

Administrator

Оффлайн

Administrator

Последняя авторизация: 05.07.2026 18:32

  • Страница размещена: 23.01.2025 23:12
  • Последнее обновление: 23.01.2025 23:12