Aside from some minor deviations noted below, an instance of this class represents a URI reference as defined by RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax, amended by RFC 2732: Format for Literal IPv6 Addresses in URLs.
This class provides constructor for creating URI instances from their string forms, methods for accessing the various components of an instance, and methods for normalizing and resolving URI instances.
Instances of this class are immutable.
Class supports all URI schemas:
file:///foo/bar http://example.com /file/page.html page2.html mailto:firstname.lastname@example.org
Can be used to resolve one URI with another, get full info about URI, build new URI related to another and so on.
Class can be used to normalize "dots" in URIs too.
Class is fully compliant to RFC 2396 and RFC 2732 specs and has full support of UTF-8 without external libs