osw3/uri

此包的最新版本(dev-master)没有可用的许可证信息。

解析和操作URI、URL和URN。

dev-master 2019-09-08 23:51 UTC

This package is auto-updated.

Last update: 2024-09-07 02:08:40 UTC


README

解析和操作URI、URL和URN。

安装

composer require osw3/uri

用法

new Uri(string $uri);
  • $uri (字符串) 您要解析的URI。

解析URI

// use namsespace
use OSW3\Uri;

// ...

// Instanciate Uri()
$uri = new Uri("http://foo.bar/opensource/database?param=value#resource");

// ..

// Get URI parameters
print_r( $uri->parameters() );

输出方法

  • print([$type])
    返回URI字符串
$uri->print();
$uri->print('uri'); // default
$uri->print('url');
$uri->print('urn');
  • parameters()
    返回所有URI参数的数组
$uri->parameters();
Array
(
    [original] => http://foo.bar/opensource/database?param=value#resource
    [hash] => 8055f2691c03d7ef54cbec8af205de5a
    [secured] => 
    [uri] => Array
        (
            [text] => http://foo.bar/opensource/database?param=value#resource=
            [md5] => 6c89b086480fbea32bacfd40251d7cce
            [sha1] => 901bfc28a6713be0de7c0948b031c6456bc05279
        )

    [url] => Array
        (
            [text] => http://foo.bar/opensource/database
            [md5] => 05386599aadf31b39042b64d77637a25
            [sha1] => 3f681fc482c68feb13f41654f354ec23a75844a4
        )

    [urn] => Array
        (
            [text] => foo.bar/opensource/database?param=value#resource=
            [md5] => e0c2f7057a96f7115844a3bc5eb62891
            [sha1] => 9e7d3b3bbc40810f62cbdb1e5ca9a7e8295a0215
        )

    [scheme] => http
    [protocol] => http://
    [user] => 
    [pass] => 
    [host] => foo.bar
    [registrable_domain] => foo.bar
    [subdomain] => 
    [hostname] => foo
    [tld] => bar
    [isValidDomain] => 1
    [isIp] => 
    [port] => 
    [path] => /opensource/database
    [segments] => Array
        (
            [0] => opensource
            [1] => database
        )

    [file] => 
    [dirname] => 
    [filename] => 
    [extension] => 
    [query] => param=value
    [parameters] => Array
        (
            [param] => value
        )

    [fragment] => resource
    [fragments] => Array
        (
            [resource] => 
        )

)
  • getUri()

返回原始URI(您的输入)

$uri->getUri();
  • getScheme() (字符串)

返回URI方案。(例如:http, https)

$uri->getScheme();
  • getProtocol() (字符串)

返回URI协议。(例如:http://, https://)

$uri->getProtocol();
  • getIsSecured() (布尔值)

如果传输是安全的(例如:https),则返回TRUE。
如果传输不是安全的(例如:http),则返回FALSE。

$uri->getIsSecured();
  • getUser() (null|string)

返回URI的用户名

$uri->getUser();
  • getPass() (null|string)

返回URI的密码

$uri->getPass();
  • getHost()
$uri->getHost();
  • getPort()
$uri->getPort();
  • getPath()
$uri->getPath();
  • getSegment()
$uri->getSegment();
  • getSegments()
$uri->getSegments();
  • getQuery()
$uri->getQuery();
  • getParameter()
$uri->getParameter();
  • getParameters()
$uri->getParameters();
  • getFragment()
$uri->getFragment();
  • getFragmentsParameter()
$uri->getFragmentsParameter();
  • getFragments()
$uri->getFragments();
  • getHostname()
$uri->getHostname();
  • getSubdomain()
$uri->getSubdomain();
  • getTld()
$uri->getTld();
  • getRegistrableDomain()
$uri->getRegistrableDomain();
  • getIsValidDomain()
$uri->getIsValidDomain();
  • getIsIp()
$uri->getIsIp();

操作

  • changeScheme(string $scheme)
    更改方案(例如:http到view-source)。
    所有有效方案在这里
$uri->changeScheme('view-source');
  • secure(bool $secure)
    如果 $secure 为TRUE,设置ON安全传输(例如:http到https)
    如果 $secure 为FALSE,设置OFF安全传输(例如:https到http)
$uri->secure(true);
  • toggleSecure()
    切换安全传输
$uri->toggleSecure();
  • addUser()
    如果未定义,添加用户名
$uri->addUser('Bob');
  • changeUser()
    更改或添加用户名
$uri->changeUser('John');
  • addPass()
    如果未定义,添加密码
$uri->addPass('123456!');
  • changePass()
    更改或添加密码
$uri->changePass('l2EAS6!');
  • changeHost()
    更改完整主机
$uri->changeHost('www.google.com');
  • addSubdomain()
    如果未定义,添加子域
$uri->addSubdomain('app');
  • changeSubdomain()
    更改或添加子域
$uri->changeSubdomain('store');
  • removeSubdomain()
    删除子域
$uri->removeSubdomain();
  • changeHostname()
    更改主机名
$uri->changeHostname('goo');
  • changeTld()
    更改顶级域名(TLD)
$uri->changeTld('gl');
  • addPort()
    如果未定义,添加端口号
$uri->addPort(8080);
  • changePort()
    更改或添加端口号
$uri->changePort(8082);
  • addSegment()
    添加一个段
$uri->addSegment('folder_A');
  • replaceSegment()
    替换一个段
$uri->replaceSegment(1, 'folder_C'); // Replace the N segment
$uri->replaceSegment('folder_B', 'folder_C'); // Replace the segment 'folder_B'
  • removeSegment()
    删除一个段
$uri->removeSegment('folder_A');
  • removeSegments()
    删除所有段
$uri->removeSegments();
  • resetSegments()
    重置段
$uri->resetSegments();
  • addParameter()
    添加一个参数
$uri->addParameter('p1', 'lorem ipsum');
  • replaceParameter()
    替换一个参数
$uri->replaceParameter('p2', 42);
  • removeParameter()
    删除一个参数
$uri->removeParameter('p2');
  • removeParameters()
    删除所有参数
$uri->removeParameters();
  • resetParameters()
    重置参数
$uri->resetParameters();
  • addFragment()
    添加一个片段
$uri->addFragment('p1', 'lorem ipsum');
  • replaceFragment()
    替换一个片段
$uri->replaceFragment('p2', 42);
  • removeFragment()
    删除一个片段
$uri->removeFragment('p2');
  • removeFragments()
    删除所有片段
$uri->removeFragments();
  • resetFragments()
    重置片段
$uri->resetFragments();