dev-master
9999999-devAn URL object to parse, manipulate or create URLs with a fluent interface
AGPL-3.0
The Requires
- php >=5.6
- timostamm/pathinfo dev-master
The Development Requires
Wallogit.com
2017 © Pedro PelĂĄez
An URL object to parse, manipulate or create URLs with a fluent interface
An URL object to parse, manipulate or create URLs with a fluent interface., (*2)
Takes care of proper decoding / encoding of the path, query parameters and credentials., (*3)
The object exposes all components of common Web URLs as public properties:, (*4)
$url = new Url('https://peter%40example.com:pass@domain.tld:8080/all+products/search?query=all#fragment');
$url->scheme->get(); // -> "https"
$url->host->get(); // -> "domain.tld"
$url->port->get(); // -> 8080
$url->credentials->username; // peter@example.com
$url->credentials->password;
$url->path->get(); // "all products/search"
$url->path->filename(); // "search"
$url->query->get('query'); // "all"
$url->fragment->get(); // "fragment"
$url->getUrl();
URL manipulation:, (*5)
$url->clearHost(); // remove the scheme, host, port, credentials
$url->clearPath(); // remove the path, query, fragment
$url->clear(Url::QUERY | Url::FRAGMENT); // remove only specific components
// replace components with components from another URL
$url->replace('http://example.com/index.html', Url::SCHEME);
$url->replacePath('http://example.com/index.html');
$url = new Url('../styles/main.css');
$url->makeAbsolutePath('http://domain.tld/products/search'); // -> /styles/main.css
$url->makeAbsolute('http://domain.tld/products/search'); // -> http://domain.tld/styles/main.css
Path manipulation:, (*6)
$url->path->set('automatically encöded/')
$url->path->normalize(); // resolves /foo/../bar to /bar
$url->filename(); // returns just the filename
Query manipulation:, (*7)
$url->query->set('text', 'encöded');
$url->query->has('text');
$url->query->replace([
'a' => 'foo',
'b' => 'bar'
]);
foreach( $url->query as list($key, $values) ) {
print $key . ": " . join(', ', $values) . "\n";
}
Credentials manipulation:, (*8)
$url->credentials->username = 'peter@example.com'; $url->credentials->password = 'pass; $url->credentials->clear(); // removes username and password if present $url->crdentials->isEmpty(); // Checks whether a username and/or password is present. $url->crdentials->equals($otherUrl->credentials); // True if both are empty or both are same.
Comparing URLs or individual components:, (*9)
$url->equals($otherUrl);
$url->equals('/all+products/search', Url::PATH);
$url->scheme->equals($otherUrl->scheme);
Common methods of all components:, (*10)
->isEmpty(); // is the component present? ->clear(); // makes the component empty ->equals($otherurl->component);
An URL object to parse, manipulate or create URLs with a fluent interface
AGPL-3.0