Yandex.Cloud
  • Сервисы
  • Почему Yandex.Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Yandex Database
  • Начало работы
    • Обзор
    • Создание базы данных
    • Примеры YQL-запросов
    • Примеры работы с YDB CLI
    • Запуск тестового приложения
    • Использование AWS CLI и AWS SDK
    • Document API
    • Разработка на NodeJS с Document API
  • Пошаговые инструкции
    • Управление базами данных
    • Подключение к базе данных
    • Управление таблицами
    • Чтение и запись данных
    • Работа со вторичными индексами
  • Работа с SDK
  • Концепции
    • Обзор
    • Модель данных и схема
    • Режимы работы Serverless и Dedicated
    • Типы данных
    • Транзакции
    • Вторичные индексы
    • Time to Live (TTL)
    • Термины и определения
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
    • Обзор
    • Бессерверный режим
    • Режим с выделенными инстансами
  • Рекомендации
    • Проектирование схемы
    • Партицирование таблиц
    • Вторичные индексы
    • Постраничный вывод
    • Загрузка больших объемов данных
    • Использование таймаутов
  • YDB API и справочник
    • Ограничения базы данных
    • Обработка ошибок в API
  • HTTP API, совместимый с Amazon DynamoDB
    • Справочник API
      • Все методы
      • Actions
        • BatchGetItem
        • BatchWriteItem
        • CreateTable
        • DeleteItem
        • DeleteTable
        • DescribeTable
        • GetItem
        • ListTables
        • PutItem
        • Query
        • Scan
        • TransactGetItems
        • TransactWriteItems
        • UpdateItem
      • Общие ошибки
  • Справочник YQL
    • Обзор
    • Типы данных
      • Простые
      • Опциональные
      • Контейнеры
      • Специальные
    • Синтаксис
      • Неподдерживаемые конструкции
      • Работа с текстовым представлением типов данных
      • Выражения
      • CREATE TABLE
      • DROP TABLE
      • INSERT INTO
      • UPSERT INTO
      • REPLACE INTO
      • UPDATE
      • DELETE
      • SELECT
      • GROUP BY
      • JOIN
      • FLATTEN
      • ACTION
      • DISCARD
      • PRAGMA
      • DECLARE
      • OVER, PARTITION BY и WINDOW
    • Встроенные функции
      • Базовые
      • Агрегатные
      • Оконные
      • Для работы со списками
      • Для работы со словарями
      • Для работы с JSON
      • Для работы со структурами
      • Для работы с типами
    • Предустановленные пользовательские функции
      • HyperScan
      • Pcre
      • Pire
      • Re2
      • String
      • Unicode
      • Datetime
      • Url
      • Ip
      • Digest
      • Math
      • Histogram
    • Работа с текстовым представлением типов данных
  • Туториал YQL
    • Обзор
    • Создание таблицы
    • Добавление данных в таблицу
    • Выборка данных из всех колонок
    • Выборка данных из определенных колонок
    • Сортировка и фильтрация
    • Агрегирование данных
    • Дополнительные условия выборки
    • Объединение таблиц с помощью JOIN
    • Вставка и модификация данных с помощью REPLACE
    • Вставка и модификация данных с помощью UPSERT
    • Вставка данных с помощью INSERT
    • Обновление данных с помощью UPDATE
    • Удаление данных
    • Добавление и удаление колонок
    • Удаление таблицы
  • Обслуживание
    • Резервное копирование
  • Диагностика
    • Системные таблицы
  • Вопросы и ответы
    • Общие вопросы
    • Ошибки
    • YQL
    • Все вопросы на одной странице
  • Публичные материалы
  1. Справочник YQL
  2. Предустановленные пользовательские функции
  3. Url

Url UDF

  • Normalize
  • NormalizeWithDefaultHttpScheme
  • Encode / Decode
  • Parse
  • Get...
  • Cut...

Normalize

Список функций

  • Url::Normalize(String) -> String?

Нормализует URL следующим образом: приводит hostname в нижний регистр, выкидывает фрагмент и т.п.
Результат нормализации зависит только от самого URL. В процессе нормализации НЕ выполняются операции, зависящие от внешних данных: приведение по дублям, зеркалам и т.п.

Возвращаемое значение:

  • нормализованный URL;
  • NULL, если переданный строковый аргумент не удалось распарсить как URL.

Примеры

SELECT Url::Normalize("hTTp://wWw.yAnDeX.RU/"); -- "http://www.yandex.ru/"
SELECT Url::Normalize("http://ya.ru#foo");      -- "http://ya.ru/"

NormalizeWithDefaultHttpScheme

  • Url::NormalizeWithDefaultHttpScheme(String?) -> String?

Выполняет нормализацию с помощью метода NUrlNorm::NormalizeUrl. В отличие от Url::Normalize, подставляет схему http:// в случае, если схемы нет.

Возвращаемое значение:

  • нормализованный URL;
  • исходный URL, если нормализация не удалась.

Примеры

SELECT Url::NormalizeWithDefaultHttpScheme("wWw.yAnDeX.RU");    -- "http://www.yandex.ru/"
SELECT Url::NormalizeWithDefaultHttpScheme("http://ya.ru#foo"); -- "http://ya.ru/"

Encode / Decode

Список функций

  • Url::Encode(String?) -> String?
  • Url::Decode(String?) -> String?

Кодируют UTF-8 строку в urlencoded формат (Url::Encode) и обратно (Url::Decode).

Примеры

SELECT Url::Decode("http://ya.ru/%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0"); -- "http://ya.ru/страница"
SELECT Url::Encode("http://ya.ru/страница");                                         -- "http://ya.ru/%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0"

Parse

Список функций

  • Url::Parse(Parse{Flags:AutoMap}) -> Struct<Frag: String?,Host: String?,ParseError: String?,Pass: String?,Path: String?,Port: String?,Query: String?,Scheme: String?,User: String?>

Примеры

SELECT Url::Parse("https://wiki.yandex-team.ru/yql/udf/list/.edit?section=24&goanchor=h-24#foo");
/*
(
  "Frag": "foo",
  "Host": "wiki.yandex-team.ru",
  "ParseError": null,
  "Pass": null,
  "Path": "/yql/udf/list/.edit",
  "Port": null,
  "Query": "section=24&goanchor=h-24",
  "Scheme": "https",
  "User": null
)
*/

Get...

Получение компонента URL.

Список функций

  • Url::GetScheme(String{Flags:AutoMap}) -> String

  • Url::GetHost(String?) -> String?

  • Url::GetHostPort(String?) -> String?

  • Url::GetSchemeHost(String?) -> String?

  • Url::GetSchemeHostPort(String?) -> String?

  • Url::GetPort(String?) -> String?

  • Url::GetPath(String?) -> String?

  • Url::GetCGIParam(String?, String) -> String?

    Второй параметр — имя нужного CGI параметра.

  • Url::GetDomain(String?, Uint8) -> String?

    Второй параметр — необходимый уровень домена.

  • Url::GetTLD(String{Flags:AutoMap}) -> String

  • Url::IsKnownTLD(String{Flags:AutoMap}) -> Bool

    Зарегистрирован на http://www.iana.org/.

  • Url::IsWellKnownTLD(String{Flags:AutoMap}) -> Bool

    Находится в небольшом whitelist из com, net, org, ru и пр.

  • Url::GetDomainLevel(String{Flags:AutoMap}) -> Uint64

    Возвращает домен второго уровня в большинстве случаев и домен третьего уровня для хостеймов вида: ***.XXX.YY, где XXX — одно из com, net, org, co, gov, edu; этот список можно переопределить через опциональный второй аргумент.

  • Url::GetSignificantDomain(String{Flags:AutoMap}, [List<String>?]) -> String

    Возвращает домен, которым с наибольшей вероятностью владеет отдельный человек или организация; в отличие от Url::GetSignificantDomain работает по специальному whitelist, и помимо доменов из серии ***.co.uk возвращает домен третьего уровня для, например, бесплатных хостингов и блогов, скажем something.livejournal.com.

  • Url::GetOwner(String{Flags:AutoMap}) -> String

Примеры

SELECT Url::GetScheme("https://ya.ru");           -- "https://"
SELECT Url::GetDomain("http://www.yandex.ru", 2); -- "yandex.ru"

Cut...

Список функций

  • Url::CutScheme(String?) -> String?

    Возвращает переданный URL уже без схемы (http://, https:// и т.п.).

  • Url::CutWWW(String?) -> String?

    Возвращает переданный домен без префикса "www.", если он имелся.

  • Url::CutWWW2(String?) -> String?

    Возвращает переданный домен без префикса "www.", "www2.", "wwww777." и тому подобных, если он имелся.

  • Url::CutQueryStringA­ndFragment(String{Flags:AutoMap}) -> String

    Возращает копию переданного URL с удаленными всеми CGI параметрами и фрагментами ("?foo=bar" и/или "#baz").

Примеры

SELECT Url::CutScheme("http://www.yandex.ru"); -- "www.yandex.ru"
SELECT Url::CutWWW("www.yandex.ru");           -- "yandex.ru"

...Punycode...

Список функций

  • Url::HostNameToPunycode(String{Flag:AutoMap}) -> String?
  • Url::ForceHostNameToPunycode(String{Flag:AutoMap}) -> String
  • Url::PunycodeToHostName(String{Flag:AutoMap}) -> String?
  • Url::ForcePunycodeToHostName(String{Flag:AutoMap}) -> String
  • Url::CanBePunycodeHostName(String{Flag:AutoMap}) -> Bool
В этой статье:
  • Normalize
  • NormalizeWithDefaultHttpScheme
  • Encode / Decode
  • Parse
  • Get...
  • Cut...
Language
Вакансии
Политика конфиденциальности
Условия использования
© 2021 ООО «Яндекс.Облако»