更新时间:2024-12-11 GMT+08:00

URL函数

提取函数

描述:提取函数用于从HTTP URL(或任何符合RFC 2396标准的URL)中提取内容。

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

提取的内容不会包含URI的语法分隔符,比如“:”或“?”。

  • url_extract_fragment(url) → varchar

    描述:返回url的片段标识符,即#后面的字符串。

    select url_extract_fragment('http://www.example.com:80/stu/index.html?name=xxx&age=25#teacher');--teacher
  • url_extract_host(url)→ varchar

    描述:返回url中的主机域名。

     select url_extract_host('http://www.example.com:80/stu/index.html?name=xxx&age=25#teacher');-- www.example.com
  • url_extract_parameter(url, name)→ varchar

    描述:返回url中参数名为name的参数。

    select url_extract_parameter('http://www.example.com:80/stu/index.html?name=xxx&age=25#teacher','age');-- 25
  • url_extract_path(url)→ varchar

    描述:提取url中的路径。

     select url_extract_path('http://www.example.com:80/stu/index.html?name=xxx&age=25#teacher');-- /stu/index.html
  • url_extract_port(url)→ bigint

    描述:提取url中的端口。

    select url_extract_port('http://www.example.com:80/stu/index.html?name=xxx&age=25#teacher');-- 80
  • url_extract_protocol(url)→ varchar

    描述:提取url中的协议。

    select url_extract_protocol('http://www.example.com:80/stu/index.html?name=xxx&age=25#teacher'); --  http
  • url_extract_query(url)→ varchar

    描述:提取url中的查询字符串。

    select url_extract_query('http://www.example.com:80/stu/index.html?name=xxx&age=25#teacher'); -- name=xxx&age=25 

编码函数

  • url_encode(value) → varchar

    描述:对value进行转义处理,以便可以安全地将其包含在URL查询参数名和值中:

    • 字母字符不会被编码。
    • 字符 ., -, * 和 _不会被编码。
    • ASCII空格字符会被编码为+
    • 所有其他字符都将转换为UTF-8,并且字节被编码为字符串%XX,其中XX是UTF-8字节的大写十六进制值。
    select url_encode('http://www.example.com:80/stu/index.html?name=xxx&age=25#teacher');
    -- http%3A%2F%2Fwww.example.com%3A80%2Fstu%2Findex.html%3Fname%3Dxxx%26age%3D25%23teacher
  • url_decode(value) → varchar

    描述:对value编码后的URL进行解码操作。

    select url_decode('http%3A%2F%2Fwww.example.com%3A80%2Fstu%2Findex.html%3Fname%3Dxxx%26age%3D25%23teacher');
    -- http://www.example.com:80/stu/index.html?name=xxx&age=25#teacher