123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package url
- import (
- netUrl "net/url"
- "strings"
- )
- // ParseUrl parse url_string
- // php parse_url
- func ParseUrl(rawURL string) (*netUrl.URL, error) {
- return netUrl.Parse(rawURL)
- }
- func ParseString(str string) (*netUrl.URL, error) {
- return netUrl.ParseRequestURI(str)
- }
- // UrlEncode url-encode string
- // php urlencode
- func UrlEncode(str string) string {
- return netUrl.QueryEscape(str)
- }
- // UrlDecode url-decode string
- // php urldecode
- func UrlDecode(str string) (string, error) {
- return netUrl.QueryUnescape(str)
- }
- // RawUrlEncode raw url-encode string
- // php rawurlencode
- func RawUrlEncode(str string) string {
- return strings.Replace(netUrl.QueryEscape(str), "+", "%20", -1)
- }
- // RawUrlDecode raw url-decode string
- // php rawurldecode
- func RawUrlDecode(str string) (string, error) {
- return netUrl.QueryUnescape(strings.Replace(str, "%20", "+", -1))
- }
- // HttpBuildQuery http build query
- // php http_build_query
- func HttpBuildQuery(queryData map[string]string) string {
- var uri netUrl.URL
- q := uri.Query()
- for key, value := range queryData {
- if strings.TrimSpace(value) != "" {
- q.Add(key, value)
- }
- }
- return q.Encode()
- }
|