URL函数
本文介绍URL函数的基本语法和示例。
PARSE_URL:返回URL中的指定内容。
URL_DECODE:解码
application/x-www-form-urlencoded编码的字符串并返回结果。URL_ENCODE:返回字符串的
application/x-www-form-urlencoded编码形式。URL_EXTRACT_FRAGMENT:返回URL中的片段标识符。
URL_EXTRACT_HOST:返回URL中的主机名或IP地址。
URL_EXTRACT_PARAMETER:返回URL查询部分中的指定参数值。
URL_EXTRACT_PATH:返回URL中的路径信息。
URL_EXTRACT_PORT:返回URL中的端口信息。
URL_EXTRACT_PROTOCOL:返回URL中的协议信息。
URL_EXTRACT_QUERY:返回URL中的查询部分信息。
PARSE_URL
PARSE_URL(url, part [,key] )命令说明:返回
url中part所指定的内容。规则如下:
当
part取值为QUERY时,返回key所对应value的值。当
url、part或key值为NULL时,返回NULL。当
part取值不符合要求时,返回NULL。
part取值不区分大写,取值如下:
HOST:URL的主机名或IP地址。
PATH:URL的路径。例如
/path/to/resource。QUERY:URL的查询字符串,即以
?开头的内容。REF:URL的片段标识符,即以
#开头的内容。PROTOCOL:URL的协议。例如
http、https。AUTHORITY:URL的用户信息、主机名及端口。
FILE:URL的文件路径。
USERINFO:URL的用户信息,包括用户名和密码。
输入值类型:
url、part和key均为STRING类型。返回值类型:STRING。
示例:
返回
url中的主机名或IP地址。语句如下:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'HOST');返回结果如下:
example.com返回
url中的路径。语句如下:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'PATH');返回结果如下:
/over/there/index.dtb返回
url中的查询字符串。语句如下:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'QUERY', 'type');返回结果如下:
animal返回
url中的片段标识符。语句如下:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'REF');返回结果如下:
nose返回
url的协议。语句如下:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'PROTOCOL');返回结果如下:
file返回
url的用户信息、主机名及端口。语句如下:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'AUTHORITY');返回结果如下:
username:password@example.com:8042返回
url的用户信息。语句如下:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'USERINFO');返回结果如下:
username:password
URL_DECODE
URL_DECODE(input)命令说明:解码
application/x-www-form-urlencoded编码的字符串并返回结果。规则说明:当
input值为NULL时,返回NULL。编码规则如下:
a~z、A~Z、0-9字符保持不变。
英文句号(.)、短划线(-)、星号(*)和下划线(_)保持不变。
加号(+)转换为空格。
%xy的序列转为对应的字节值,连续的字节值根据UTF-8格式解码为对应的字符串。
输入值类型:STRING。
返回值类型:STRING。
示例:
解码
application/x-www-form-urlencoded编码的参数并返回结果,语句如下:SELECT url_decode('%E7%A4%BA%E4%BE%8Bfor+url_decode%3A%2F%2F+%28fdsf%29');返回结果如下:
示例for url_decode:// (fdsf)
URL_ENCODE
URL_ENCODE(input)命令说明:返回字符串的
application/x-www-form-urlencoded编码形式。规则说明:当
input为NULL时,返回NULL。编码规则如下:
a~z、A~Z、0-9字符保持不变。
英文句号(.)、短划线(-)、星号(*)和下划线(_)保持不变。
空格转换为加号(+)。
其他字符根据UTF-8格式编码转为字节值,然后将每个字节值表示为
%xy的格式,xy是该字符的十六进制表示方式。
输入值类型:STRING。
返回值类型:STRING。
示例:
返回
示例for url_encode:// (fdsf)的application/x-www-form-urlencoded编码形式。SELECT url_encode('示例for url_encode:// (fdsf)');返回结果如下:
%E7%A4%BA%E4%BE%8Bfor+url_encode%3A%2F%2F+%28fdsf%29
URL_EXTRACT_FRAGMENT
URL_EXTRACT_FRAGMENT(url)命令说明:返回
url中的片段标识符(即以#开头的内容)。规则说明:
当
url为NULL或url无效时,返回NULL。当
url中没有片段标识符时,返回空字符串。
输入值类型:STRING。
返回值类型:STRING。
示例:
返回
url中的片段标识符。语句如下:SELECT url_extract_fragment('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');返回结果如下:
Ref1
URL_EXTRACT_HOST
URL_EXTRACT_HOST(url)命令说明:返回
url中的主机名或IP地址。规则说明:当
url为NULL或url无效时,返回NULL。输入值类型:STRING。
返回值类型:STRING。
示例:
返回
url中的主机名或IP地址。语句如下:SELECT url_extract_host('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');返回结果如下:
example.com
URL_EXTRACT_PARAMETER
URL_EXTRACT_PARAMETER(url, parameter)命令说明:返回
url的查询部分中parameter参数指定的信息。规则说明:当
url为NULL、parameter为NULL或url的查询部分中没有parameter参数时,返回NULL。输入值类型:
url和parameter均为STRING类型。返回值类型:STRING。
示例:
返回
url中查询字符串中k1指定的信息。语句如下:SELECT url_extract_parameter('http://example.com/path1/p.php?k1=v1&k2=v2&k3&k4#Ref1', 'k1');返回结果如下:
v1返回
url中查询字符串中k5指定的信息。语句如下:SELECT url_extract_parameter('http://example.com/path1/p.php?k1=v1&k2=v2&k3&k4#Ref1', 'k5');返回结果如下:
NULL
URL_EXTRACT_PATH
URL_EXTRACT_PATH(url)命令说明:返回
url中的路径信息。规则说明:
当
url为NULL或url无效时,返回NULL。当
url中没有路径时,返回空字符串。
输入值类型:STRING。
返回值类型:STRING。
示例:
返回
url中的路径信息。语句如下:SELECT url_extract_path('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');返回结果如下:
/path1/p.php
URL_EXTRACT_PORT
URL_EXTRACT_PORT(url)命令说明:返回
url中的端口信息。规则说明:当
url为NULL、url无效或url中没有端口时,返回NULL。输入值类型:STRING。
返回值类型:STRING。
示例:
返回
url中的端口信息。语句如下:SELECT url_extract_port('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');返回结果如下:
NULL返回
url中的端口信息。语句如下:SELECT url_extract_port('http://example.com:8080/path1/p.php?k1=v1&k2=v2#Ref1');返回结果如下:
8080
URL_EXTRACT_PROTOCOL
URL_EXTRACT_PROTOCOL(url)命令说明:返回
url中的协议信息。规则说明:当
url为NULL或url无效时,返回NULL。输入值类型:STRING。
返回值类型:STRING。
示例:
返回
url中的协议信息。语句如下:SELECT url_extract_protocol('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');返回结果如下:
http
URL_EXTRACT_QUERY
URL_EXTRACT_QUERY(url)命令说明:返回
url中的查询部分信息。规则说明:
当
url为NULL或url无效,返回NULL。当
url中没有查询部分的信息时,返回空字符串。
输入值类型:STRING。
返回值类型:STRING。
示例:
返回
url中查询部分的信息。语句如下:SELECT url_extract_query('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');返回结果如下:
k1=v1&k2=v2