Функции для работы с URL#

Извлечение компонентов#

Функции ниже извлекают компоненты из URL-адресов (включая любые URI, соответствующие RFC 2396). Поддерживаемый синтаксис URL:

[protocol:][//host[:port]][path][?query][#fragment]

Извлеченные компоненты не содержат синтаксических разделителей URI таких, как : или ?.

url_extract_fragment(url) varchar#

Возвращает идентификатор фрагмента из url.

url_extract_host(url) varchar#

Возвращает хост из url.

url_extract_parameter(url, name) varchar#

Возвращает значение первого параметра строки запроса с именем name из url. Извлечение параметров выполняется способом, указанным в RFC 1866#section-8.2.1.

url_extract_path(url) varchar#

Возвращает путь из url.

url_extract_port(url) bigint#

Возвращает порт из url.

url_extract_protocol(url) varchar#

Возвращает протокол из url:

SELECT url_extract_protocol('http://localhost:8080/req_path');
-- http

SELECT url_extract_protocol('https://127.0.0.1:8080/req_path');
-- https

SELECT url_extract_protocol('ftp://path/file');
-- ftp
url_extract_query(url) varchar#

Возвращает строку запроса из url.

Экранирование#

url_encode(value) varchar#

Экранирует символы value так, чтобы результат можно было безопасно использовать в качестве имен и значений параметров URL-запроса:

  • Буквенно-цифровые символы не экранируются.

  • Символы ., -, * и _ не экранируются.

  • Символ пробела ASCII экранируется как +.

  • Все остальные символы сначала преобразуются в UTF-8, а полученные байты кодируются как %XX, где XX - это шестнадцатеричное значение байта UTF-8 в верхнем регистре.

url_decode(value) varchar#

Отменяет экранирование value. Функция является обратной к url_encode().