282. URL

Manipulate and Parse URLs

282.1. Summary of Module Globals

List of Global Functions

  • Build - Build URL from tokens as parsed with Parse

  • Check - Check URL

  • EscapeString - Escape reserved characters in string used as a part of URL (e.g. '%' => '%25', '@' => '%40'...)

  • FormatURL - Format URL - truncate the middle part of the directory to fit to the requested lenght.

  • MakeMapFromParams - Reads list of HTTP params and returns them as map. (Useful also for cd:/, dvd:/, nfs:/ ... params) Neither keys nor values are HTML-unescaped, see UnEscapeString().

  • MakeParamsFromMap - Returns string made of HTTP params. It's a reverse function to MakeMapFromParams(). Neither keys nor values are HTML-escaped, use EscapeString() if needed.

  • Parse - Tokenize URL

  • UnEscapeString - Escape reserved characters in string used as a part of URL (e.g. '%25' => '%', '%40' => '@'...)

List of Global Variables

  • transform_map_filename - Transform map used for (un)escaping characters in file location part of an URL. It doesn't contain '%' because this character must be used in a particular order (the first or the last) during processing

  • transform_map_passwd - Transform map used for (un)escaping characters in username/password part of an URL. It doesn't contain '%' because this character must be used in a particular order (the first or the last) during processing

  • transform_map_query - Transform map used for (un)escaping characters in query part of a URL. It doesn't contain '%' because this character must be used in a particular order (the first or the last) during processing

282.2. Global Functions

282.2.1. Build

Build URL from tokens as parsed with Parse

Function parameters

  • map tokens

Return value

  • string - url, empty string if invalid data is used to build the url.

282.2.2. Check

Check URL

Function parameters

  • string url

Return value

  • boolean - true if correct

282.2.3. EscapeString

Escape reserved characters in string used as a part of URL (e.g. '%' => '%25', '@' => '%40'...)

Function parameters

  • string in

  • map<string,string> transform

Return value

  • string - escaped string

Example 132. 

	URL::EscapeString ("http://some.nice.url/:with:/$p#ci&l/ch@rs/", URL::transform_map_passwd)
		-> http%3a%2f%2fsome.nice.url%2f%3awith%3a%2f%24p#ci%26l%2fch%40rs%2f


282.2.4. FormatURL

Format URL - truncate the middle part of the directory to fit to the requested lenght.

Function parameters

  • map tokens

  • integer len

Return value

  • string - Truncated URL

Example 133. 

 FormatURL("http://download.opensuse.org/very/log/path/which/will/be/truncated/target_file", 45)
&nbsp;&nbsp;&nbsp;&nbsp;-> "http://download.opensuse.org/.../target_file"
 FormatURL("http://download.opensuse.org/very/log/path/which/will/be/truncated/target_file", 60)
&nbsp;&nbsp;&nbsp;&nbsp;-> "http://download.opensuse.org/very/.../be/truncated/target_file"


282.2.5. MakeMapFromParams

Reads list of HTTP params and returns them as map. (Useful also for cd:/, dvd:/, nfs:/ ... params) Neither keys nor values are HTML-unescaped, see UnEscapeString().

Function parameters

  • string params

Return value

  • map <string, string> - params

Example 134. 

      MakeMapFromParams ("device=sda3&login=aaa&password=bbb") -> $[
              "device"   : "sda3",
              "login"    : "aaa",
              "password" : "bbb"
      ]


282.2.6. MakeParamsFromMap

Returns string made of HTTP params. It's a reverse function to MakeMapFromParams(). Neither keys nor values are HTML-escaped, use EscapeString() if needed.

Function parameters

  • map <string, string> params_map

Return value

  • string

Example 135. 

   MakeMapFromParams ($[
     "param1" : "a",
     "param2" : "b",
     "param3" : "c",
   ]) -> "param1=a&param2=b&param3=c"


282.2.7. Parse

Tokenize URL

Function parameters

  • string url

Return value

  • map - URL split to tokens

Example 136. 

 Parse("http://name:pass@www.suse.cz:80/path/index.html?question#part") ->
     $[
         "scheme"  : "http",
         "host"    : "www.suse.cz"
         "port"    : "80",
         "path"    : /path/index.html",
         "user"    : "name",
         "pass"    : "pass",
         "query"   : "question",
         "fragment": "part"
     ]


282.2.8. UnEscapeString

Escape reserved characters in string used as a part of URL (e.g. '%25' => '%', '%40' => '@'...)

Function parameters

  • string in

  • map<string,string> transform

Return value

  • string - unescaped string

Example 137. 

	URL::UnEscapeString ("http%3a%2f%2fsome.nice.url%2f%3awith%3a%2f%24p#ci%26l%2fch%40rs%2f", URL::transform_map_passwd)
		-> http://some.nice.url/:with:/$p#ci&l/ch@rs/


282.3. Global Variables

282.3.1. transform_map_filename

Transform map used for (un)escaping characters in file location part of an URL. It doesn't contain '%' because this character must be used in a particular order (the first or the last) during processing

282.3.2. transform_map_passwd

Transform map used for (un)escaping characters in username/password part of an URL. It doesn't contain '%' because this character must be used in a particular order (the first or the last) during processing

282.3.3. transform_map_query

Transform map used for (un)escaping characters in query part of a URL. It doesn't contain '%' because this character must be used in a particular order (the first or the last) during processing

282.4. Module Requirements

282.4.1. Module Imports

  • Hostname
  • IP
  • String

282.4.2. Module Includes