Функции для работы с 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()
.