Download the PHP package fm-labs/php-uri without Composer
On this page you can find all versions of the php package fm-labs/php-uri. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Please rate this library. Is it a good library?
Informations about the package php-uri
php-uri
Simple URI library for PHP. Compliant to PSR-7 UriInterface specification. Includes RFC3968-compliant URI normalizer. Supports PHP 7.1+ and PHP 8.0.
Requirements
- php7.1+ | php8.0
Installation
Classes
Uri
PSR-7 UriInterface methods
getScheme()
getHost()
getPort()
getPath()
getQuery()
getFragment()
getUserInfo()
getAuthority()
-
__toString()
withScheme()
withHost()
withPort()
withUserInfo()
withPath()
withQuery()
withFragment()
Convenience methods
getHostInfo()
- Returns hostinfo stringgetUser()
- Returns userinfo usernamegetUserPass()
- Returns userinfo passwordgetQueryData(?string $key = null)
- Returns query data as array OR value for specific keygetComponents()
- Returns components as array
Array and Property Access
Available Keys:
scheme
, host
, port
, path
, query
, fragment
, user
, pass
, userinfo
, authority
, hostinfo
, querydata
UriFactory
Create Uri object with UriFactory class
UriFactory::create()
UriFactory::fromString(string $uriString)
UriFactory::fromComponents(array $components)
UriFactory::fromUri(UriInterface $uri)
Create \FmLabs\Uri\Uri
object from any UriInterface
.
UriNormalizer
static normalize()
Normalize URI. See RFC3968 and here.
Returns a new Uri
object with normalized components.
Method | Normalization | Example | Result |
---|---|---|---|
normalizeEscapeSequences |
Converting percent-encoded triplets to uppercase | http://example.com/foo%2a |
http://example.com/foo%2A |
normalizeScheme |
Converting the scheme to lowercase | HTTP://[email protected]/Foo |
http://[email protected]/Foo |
normalizeHost |
Converting the host to lowercase | HTTP://[email protected]/Foo |
HTTP://[email protected]/Foo |
normalizeUnreservedChars |
Decoding percent-encoded triplets of unreserved characters | http://example.com/%7Efoo |
http://example.com/~foo |
normalizeDotSegments |
Removing dot-segments | http://example.com/foo/./bar/baz/../qux |
http://example.com/foo/bar/qux |
normalizeTrailingSlash |
Converting an empty path to a "/" path | http://example.com |
http://example.com/ |
normalizeDefaultPorts |
Removing the default port | http://example.com:80/ |
http://example.com/ |
normalizeFragment |
Removing the fragment | http://example.com/bar.html#section1 |
http://example.com/bar.html |
normalizeForceHttps |
Force protocol | http://example.com/ |
https://example.com/ |
normalizeDuplicateSlashes |
Removing duplicate slashes | http://example.com/foo//bar.html |
http://example.com/foo/bar.html |
normalizeEmptyQuery |
Removing the "?" when the query is empty | http://example.com/display? |
http://example.com/display |
normalizeQuerySorting |
Sorting the query parameters | http://example.com/display?lang=en&article=fred |
http://example.com/display?article=fred&lang=en |
@TODO normalizeHostIp |
Replacing IP with domain name | http://123.234.123.234/ |
http://example.com/ |
@TODO normalizeWwwDomain |
Removing or adding “www” as the first domain label | http://www.example.com/ |
http://example.com/ |
@TODO normalizeNonEmptyPath |
Adding a trailing "/" to a non-empty path | http://example.com/foo |
http://example.com/foo/ |
@TODO normalizeDirectoryIndex |
Removing directory index | - | - |
@TODO normalizeQuery |
Remove (unused) query variables | - | - |
Usage
Run tests
TODO
- UriNormalizer: normalize: Removing directory index
- UriNormalizer: normalize: Replacing IP with domain name
- UriNormalizer: normalize: Removing or adding “www” as the first domain label
- UriNormalizer: normalize: Removing unused query variables
- UriNormalizer: Use better semantics for normalization method names to make fluent interface more intuitive
- UriNormalizer: Refactor normalization methods into classes
- UriFactory: Auto-normalize Uri according to RFC
- Add UriFactoryTrait
Changelog
[0.6.1]
- Added stricter type casting
- Added more Uri tests
[0.6]
- Added UriFactory::create() method
- Added UriFactory::setClassName() method
- Added more tests
- Refactored UriNormalizer and added fluent method interface.
- Added more normalization methods
[0.5]
- Changed Uri class: Removed constructor
- Changed Uri class: Implemented better method to create new modified instances
- Changed Uri class: Use class properties instead of property array
- Added PHP8 annotations
- Added TravisCI build targets php7.4 & php8.0
- Added Test support for PHPUnit9
[0.4]
- Dropped UriBuilder in favor of UriFactory
- Added UriFactory
- Changed Uri constructor
- Changed min PHP language level to 7.1
- Changed license to MIT license
- Added Test support for PHPUnit8
- Fixed Code style
[0.3.1]
- Added PSR-7 compatibility. Uri now implements PSR UriInterface
- Added TravisCI build targets php7.2 & php7.3
[0.3]
- Changed namespace to '\FmLabs\Uri'
- Changed project name to 'php-uri'
- Removed UrlExpander class
- Refactored Url to Uri class
- Refactored UrlNormalizer to UriNormalizer
- Added UriBuilder class
- Upgraded unit tests to PHPUnit6
- Changed min PHP language level to 7.1
[0.2]
- Added UrlExpander util class (requires curl)
License
See LICENSE file
All versions of php-uri with dependencies
PHP Build Version
Package Version
The package fm-labs/php-uri contains the following files
Loading the files please wait ....