Module neturl
-
-neturl.lua - a robust url parser and builder
-Bertrand Mansion, 2011-2012; License MIT
- -Functions
-M:build () | -builds the url | -
buildQuery (tab, sep, key) | -builds the querystring | -
parseQuery (str, sep) | -Parses the querystring to a table - This function can parse multidimensional pairs and is mostly compatible - with PHP usage of brackets in key names like ?param[key]=value | -
M:setQuery (query) | -set the url query | -
M:setAuthority (authority) | -set the authority part of the url - The authority is parsed to find the user, password, port and host if available. | -
parse (url) | -Parse the url into the designated parts. | -
removeDotSegments (path) | -removes dots and slashes in urls when possible - This function will also remove multiple slashes | -
M:resolve (other) | -builds a new url by using the one given as parameter and resolving paths | -
M:normalize () | -normalize a url path following some common normalization rules - described on The URL normalization page of Wikipedia | -
Tables
-options | -url options - separator is set to `&` by default but could be anything like `&` or `;` | -
services | -list of known and common scheme ports - as documented in IANA URI scheme list | -
-
- - -
Functions
- --
-
- - - M:build () - -
-
- builds the url
-
-
-
-
Returns:
--
- a string representing the built url
-
- - - - buildQuery (tab, sep, key) - -
-
- builds the querystring
-
-
Parameters:
--
-
tab
: The key/value parameters
- sep
: The separator to use (optional)
- key
: The parent key if the value is multi-dimensional (optional)
-
Returns:
--
- a string representing the built querystring
-
- - - - parseQuery (str, sep) - -
-
- Parses the querystring to a table
- This function can parse multidimensional pairs and is mostly compatible
- with PHP usage of brackets in key names like ?param[key]=value
-
-
Parameters:
--
-
str
: The querystring to parse
- sep
: The separator between key/value pairs, defaults to `&`
-
Returns:
--
- a table representing the query key/value pairs
-
- - - - M:setQuery (query) - -
-
- set the url query
-
-
Parameters:
--
-
query
: Can be a string to parse or a table of key/value pairs
-
Returns:
--
- a table representing the query key/value pairs
-
- - - - M:setAuthority (authority) - -
-
- set the authority part of the url
- The authority is parsed to find the user, password, port and host if available.
-
-
Parameters:
--
-
authority
: The string representing the authority
-
Returns:
--
- a string with what remains after the authority was parsed
-
- - - - parse (url) - -
-
- Parse the url into the designated parts.
- Depending on the url, the following parts can be available:
- scheme, userinfo, user, password, authority, host, port, path,
- query, fragment
-
-
Parameters:
--
-
url
: Url string
-
Returns:
--
- a table with the different parts and a few other functions
-
- - - - removeDotSegments (path) - -
-
- removes dots and slashes in urls when possible
- This function will also remove multiple slashes
-
-
Parameters:
--
-
path
: The string representing the path to clean
-
Returns:
--
- a string of the path without unnecessary dots and segments
-
- - - - M:resolve (other) - -
-
- builds a new url by using the one given as parameter and resolving paths
-
-
Parameters:
--
-
other
: A string or a table representing a url
-
Returns:
--
- a new url table
-
- - - - M:normalize () - -
-
- normalize a url path following some common normalization rules
- described on The URL normalization page of Wikipedia
-
-
-
-
Returns:
--
- the normalized path
-
-
Tables
- --
-
- - - options - -
- - url options - separator is set to `&` by default but could be anything like `&` or `;` - - - - - - -
- - - services - -
-
- list of known and common scheme ports
- as documented in IANA URI scheme list
-
-
Fields:
--
-
acap
:
- cap
:
- dict
:
- ftp
:
- gopher
:
- http
:
- https
:
- iax
:
- icap
:
- imap
:
- ipp
:
- ldap
:
- mtqp
:
- mupdate
:
- news
:
- nfs
:
- nntp
:
- rtsp
:
- sip
:
- snmp
:
- telnet
:
- tftp
:
- vemmi
:
- afs
:
- jms
:
- rsync
:
- prospero
:
- videotex
:
-
-