Resolves a URI reference in the context of a base URI and the opposite way.
- author Tobias Schultze
- see https://datatracker.ietf.org/doc/html/rfc3986#section-5
Methods |
public static relativize(Psr\Http\Message\UriInterface $base, Psr\Http\Message\UriInterface $target) : Psr\Http\Message\UriInterface Returns the target URI as a relative reference from the base URI. This method is the counterpart to resolve(): (string) $target === (string) UriResolver::resolve($base, UriResolver::relativize($base, $target)) One use-case is to use the current request URI as base URI and then generate relative links in your documents to reduce the document size or offer self-contained downloadable document archives. $base = new Uri('http://example.com/a/b/'); echo UriResolver::relativize($base, new Uri('http://example.com/a/b/c')); // prints 'c'. echo UriResolver::relativize($base, new Uri('http://example.com/a/x/y')); // prints '../x/y'. echo UriResolver::relativize($base, new Uri('http://example.com/a/b/?q')); // prints '?q'. echo UriResolver::relativize($base, new Uri('http://example.org/a/b/')); // prints '//example.org/a/b/'. This method also accepts a target that is already relative and will try to relativize it further. Only a relative-path reference will be returned as-is. echo UriResolver::relativize($base, new Uri('/a/b/c')); // prints 'c' as well |
public static removeDotSegments(string $path) : string Removes dot segments from a path and returns the new path.
|
public static resolve(Psr\Http\Message\UriInterface $base, Psr\Http\Message\UriInterface $rel) : Psr\Http\Message\UriInterface Converts the relative URI into a new URI that is resolved against the base URI.
|
Methods |
private __construct() |
private static getRelativePath(Psr\Http\Message\UriInterface $base, Psr\Http\Message\UriInterface $target) : string |
Methods |
private static getRelativePath(Psr\Http\Message\UriInterface $base, Psr\Http\Message\UriInterface $target) : string |
public static relativize(Psr\Http\Message\UriInterface $base, Psr\Http\Message\UriInterface $target) : Psr\Http\Message\UriInterface Returns the target URI as a relative reference from the base URI. This method is the counterpart to resolve(): (string) $target === (string) UriResolver::resolve($base, UriResolver::relativize($base, $target)) One use-case is to use the current request URI as base URI and then generate relative links in your documents to reduce the document size or offer self-contained downloadable document archives. $base = new Uri('http://example.com/a/b/'); echo UriResolver::relativize($base, new Uri('http://example.com/a/b/c')); // prints 'c'. echo UriResolver::relativize($base, new Uri('http://example.com/a/x/y')); // prints '../x/y'. echo UriResolver::relativize($base, new Uri('http://example.com/a/b/?q')); // prints '?q'. echo UriResolver::relativize($base, new Uri('http://example.org/a/b/')); // prints '//example.org/a/b/'. This method also accepts a target that is already relative and will try to relativize it further. Only a relative-path reference will be returned as-is. echo UriResolver::relativize($base, new Uri('/a/b/c')); // prints 'c' as well |
public static removeDotSegments(string $path) : string Removes dot segments from a path and returns the new path.
|
public static resolve(Psr\Http\Message\UriInterface $base, Psr\Http\Message\UriInterface $rel) : Psr\Http\Message\UriInterface Converts the relative URI into a new URI that is resolved against the base URI.
|