uri

URI manipulation Library

Github星跟踪图

URI

Build Status
Software License
Latest Version
Total Downloads

The Uri package provides simple and intuitive classes to manage URIs in PHP. You will be able to

  • parse, build and resolve URIs
  • create URIs from different sources (string, PHP environment, base URI, URI template, ...);
  • handle internalisation;
  • infer properties and features from URIs;
<?php

use League\Uri\UriTemplate;

$template = 'https://api.twitter.com:443/{version}/search/{term:1}/{term}/{?q*,limit}#title';
$defaultVariables = ['version' => '1.1'];
$params = [
    'term' => 'john',
    'q' => ['a', 'b'],
    'limit' => '10',
];

$uriTemplate = new UriTemplate($template, $defaultVariables);
$uri = $uriTemplate->expand($params);
// $uri is a League\Uri\Uri object

echo $uri->getScheme();    //displays "https"
echo $uri->getAuthority(); //displays "api.twitter.com:443"
echo $uri->getPath();      //displays "/1.1/search/j/john/"
echo $uri->getQuery();     //displays "q=a&q=b&limit=10"
echo $uri->getFragment();  //displays "title"
echo $uri;
//displays "https://api.twitter.com:443/1.1/search/j/john/?q=a&q=b&limit=10#title"
echo json_encode($uri);
//displays "https:\/\/api.twitter.com:443\/1.1\/search\/j\/john\/?q=a&q=b&limit=10#title"

Highlights

System Requirements

  • You require PHP >= 7.2 but the latest stable version of PHP is recommended
  • You will need the ext-intl to handle i18n URI.
  • Since version 6.2.0 you will need the ext-fileinfo to handle Data URI creation from a filepath.

Dependencies

In order to handle IDN host you are required to also install the intl extension otherwise an exception will be thrown when attempting to validate such host.

In order to create Data URI from a filepath, since version 6.2, you are required to also install the fileinfo extension otherwise an exception will be thrown.

Installation

$ composer require league/uri

Documentation

Full documentation can be found at uri.thephpleague.com.

Contributing

Contributions are welcome and will be fully credited. Please see CONTRIBUTING and CONDUCT for details.

Testing

The library has a :

  • a PHPUnit test suite
  • a coding style compliance test suite using PHP CS Fixer.
  • a code analysis compliance test suite using PHPStan.

To run the tests, run the following command from the project folder.

$ composer test

Security

If you discover any security related issues, please email nyamsprod@gmail.com instead of using the issue tracker.

Credits

Attribution

The UriTemplate class is adapted from the Guzzle 6 project.

License

The MIT License (MIT). Please see License File for more information.

主要指标

概览
名称与所有者thephpleague/uri
主编程语言PHP
编程语言PHP (语言数: 1)
平台
许可证MIT License
所有者活动
创建于2015-07-14 19:37:30
推送于2025-06-10 06:48:40
最后一次提交2025-06-10 08:48:18
发布数37
最新版本名称7.5.1 (发布于 2024-12-08 08:48:09)
第一版名称4.0.0 (发布于 )
用户参与
星数1.1k
关注者数15
派生数66
提交数1.5k
已启用问题?
问题数0
打开的问题数0
拉请求数116
打开的拉请求数0
关闭的拉请求数17
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?