Constants |
public
|
AUTHORITY_FORM_REGEX = '/^(([-a-z0-9!$&\'()*+,.;=_~]|%[0-9a-f]{2})++|\[[0-9a-f:]++\]):[0-9]++$/iD'
|
#
|
public
|
HOST_REGEX = '/^(([-a-z0-9!$&\'()*+,.;=_~]|%[0-9a-f]{2})++|\[[0-9a-f:]++\])$/iD'
|
#
|
public
|
HTTP_FIELD_NAME_REGEX = self::HTTP_TOKEN_REGEX
|
#
|
public
|
HTTP_FIELD_VALUE_REGEX = '/^([\x21-\x7e\x80-\xff]++(?:\h++[\x21-\x7e\x80-\xff]++)*+)?$/D'
|
#
|
public
|
HTTP_TOKEN_REGEX = '/^[-0-9a-z!#$%&\'*+.^_`|~]++$/iD'
|
#
|
public
|
HTTP_TOKEN = '(?:(?i)[-0-9a-z!#$%&\'*+.^_`|~]++)'
|
#
|
public
|
SCHEME_REGEX = '/^[a-z][-a-z0-9+.]*$/iD'
|
#
|
public
|
HTTP_FIELD_LINE_REGEX = "/ ^\n(?(DEFINE)\n (?<token> [-0-9a-z!#$%&'*+.^_`|~]++ )\n (?<field_vchar> [\\x21-\\x7e\\x80-\\xff]++ )\n (?<field_content> (?&field_vchar) (?: \\h++ (?&field_vchar) )*+ )\n)\n(?:\n (?<name> (?&token) ) (?<bad_whitespace> \\h++ )?+ : \\h*+ (?<value> (?&field_content)? ) |\n \\h++ (?<extended> (?&field_content)? )\n)\n(?<carry> \\h++ )?\n$ /ixD"
|
#
|
public
|
URI_REGEX = "` ^\n(?(DEFINE)\n (?<unreserved> [-a-z0-9._~] )\n (?<sub_delims> [!$&'()*+,;=] )\n (?<pct_encoded> % [0-9a-f]{2} )\n (?<reg_char> (?&unreserved) | (?&pct_encoded) | (?&sub_delims) )\n (?<pchar> (?®_char) | [:@] )\n)\n(?: (?<scheme> [a-z] [-a-z0-9+.]* ) : )?+\n(?:\n //\n (?<authority>\n (?:\n (?<userinfo>\n (?<user> (?®_char)* )\n (?: : (?<pass> (?: (?®_char) | : )* ) )?\n )\n @\n )?+\n (?<host> (?®_char)*+ | \\[ (?<ipv6address> [0-9a-f:]++ ) \\] )\n (?: : (?<port> [0-9]+ ) )?+\n )\n # Path after authority must be empty or begin with \"/\"\n (?= / | \\? | \\# | $ ) |\n # Path cannot begin with \"//\" except after authority\n (?= / ) (?! // ) |\n # Rootless paths can only begin with a \":\" segment after scheme\n (?(<scheme>) (?= (?&pchar) ) | (?= (?®_char) | @ ) (?! [^/:]++ : ) ) |\n (?= \\? | \\# | $ )\n)\n(?<path> (?: (?&pchar) | / )*+ )\n(?: \\? (?<query> (?: (?&pchar) | [?/] )* ) )?+\n(?: \\# (?<fragment> (?: (?&pchar) | [?/] )* ) )?+\n$ `ixD"
|
#
|