The URI toolkit
For PHP Developers
A complete PHP toolkit for working with URIs. Parse, validate, format, and manipulate any RFC 3986 or RFC 8141–compliant identifier in a consistent, standards-based way. Aligned with the WHATWG URL Living Standard. Includes polyfills, PSR-7 and PSR-17 adapters, and modern replacements for PHP’s legacy URL functions.
use League\Uri\Components\Query;
use League\Uri\Modifier;
use League\Uri\Uri;
$uri = Uri::new('https://example.com?q=value#fragment');
$uri->getScheme(); // returns 'http'
$uri->getHost(); // returns 'example.com'
$newUri = Modifier::wrap($uri)->appendQuery('q=new.Value');
echo $newUri; // 'https://example.com?q=value&q=new.Value#fragment'
$query = Query::fromUri($newUri);
$query->get('q'); // returns 'value'
$query->getAll('q'); // returns ['value', 'new.Value']
$query->parameter('q'); // returns 'new.Value'
Choose the package that suits your needs
uri-interfaces
The URI utility package
- URI parser and builder
- Query parser and builder
- IDNA, IPv4 and IPv6 converter
- Encoder/decoder for URI components
uri
The URI manipulation package
- Full validation of common URI schemes
- URN support following
RFC 8141 - URI Template expansion
RFC 6570 PSR-7andPSR-17URI adapters- Resolves, Normalizes and Relativizes URIs
uri-components
The URI components package
- Provides URI components objects
URLSearchParamsfor PHPFragmentDirectivesfor PHP- Universal URI Modifiers
uri-polyfill
The URI Polyfill package
Uri\Rfc3986\Urifor PHP8.1+Uri\WhatWg\Urlfor PHP8.1+
Love this toolkit? Sponsor its development
!
Once a new major version is released, the previous stable release remains supported for six more months with patches and security fixes.