Modern API to process URIs in PHP.

Once a new major version is released, the previous stable release remains supported for six more months through patches and security fixes.


use League\Uri\Components\Query;
use League\Uri\Uri;
use League\Uri\UriModifier;

$uri = Uri::createFromString('http://example.com?q=value#fragment');
$uri->getScheme(); // returns 'http'
$uri->getHost();   // returns 'example.com'

$newUri = UriModifier::appendQuery($uri, 'q=new.Value');
echo $newUri; // 'http://example.com?q=value&q=new.Value#fragment'

$query = Query::createFromUri($newUri);
$query->get('q');    // returns 'value'
$query->getAll('q'); // returns ['value', 'new.Value']
$query->params('q'); // returns 'new.Value'

The libraries manipulate URIs and their components using a simple yet expressive code.


This suite of packages provides intuitive classes to parse, validate, format and manipulate URIs and their components. It is built to enable working with any kind of RFC3986 compliant URI and also follow closely the latest WHATWG Living standard specification.

It provides an enhanced replacement for PHP's parse_url, http_build_query, and PECL's http_build_url functions.

  1. Simple and extensible API

  2. RFC3986 compliant

  3. follows URL Living Standard specifications

  4. Implements PSR-7 UriInterface interface

  5. Framework-agnostic


building blocks

This is the main package. Its goal is to ease the generation and manipulation of URI objects, independently of its scheme.
This package complements the URI package, providing an object-oriented way to access and manipulate each component value of the underlying URI.

Deprecated blocks

Collection of URI objects.
This package is deprecated because it conflicts with, and is superseded by, the latest URI object package.
Functions and Middleware to ease URI object manipulation.
This package is deprecated because it is superseded by the latest URI component object package.
A lightweight public suffix list ICANN section parser.
This package is deprecated and its feature removed as it was a temporary solution. Other dedicated PHP package like PHP Domain Parser provides a better, and more stable, approach.

Helpers blocks

While no longer updated the following helper packages will continue to receive patch fixes as long as PHP7 is maintained. Their features have been merged into maintained packages, while maintaining backwards-compatibility. Avoid using them for new projects.

a PHP user land RFC3986 compliant parser and builder to turn any valid URI string into an array and to build an URI out of a given array.
modern URI query string parser and builder based on RFC3986 and the URL Living Standard.


The packages were created by Ignace Nyamagana Butera. Find him on Twitter at @nyamsprod.