polycademy / purl
此包已被 废弃 并不再维护。未建议替代包。
PHP 5.3 的 URL 操作
v0.0.3
2013-10-24 07:29 UTC
Requires
- php: >=5.3.0
- jeremykendall/php-domain-parser: 0.0.7
This package is not auto-updated.
Last update: 2022-02-01 12:27:51 UTC
README
Purl 是一个简单的面向对象的 PHP 5.3+ URL 操作库
使用 Purl
创建 URL 实例很容易
<?php $url = new \Purl\Url('http://jwage.com');
如果您喜欢这种风格,也可以通过静态 parse
方法创建 Url
实例
<?php $url = \Purl\Url::parse('http://jwage.com');
使用此方法的优点是您可以在创建 Url
后链式调用方法
<?php $url = \Purl\Url::parse('http://jwage.com') ->set('scheme', 'https') ->set('port', '443') ->set('user', 'jwage') ->set('pass', 'password') ->set('path', 'about/me') ->set('query', 'param1=value1¶m2=value2') ->set('fragment', 'about/me?param1=value1¶m2=value2'); echo $url->getUrl(); // https://jwage:password@jwage.com:443/about/me?param1=value1¶m2=value2#about/me?param1=value1¶m2=value2 // $url->path becomes instanceof Purl\Path // $url->query becomes instanceof Purl\Query // $url->fragment becomes instanceof Purl\Fragment
路径操作
<?php $url = new \Purl\Url('http://jwage.com'); // add path segments one at a time $url->path->add('about')->add('me'); // set the path data from a string $url->path = 'about/me/another_segment'; // $url->path becomes instanceof Purl\Path // get the path segments print_r($url->path->getData()); // array('about', 'me', 'another_segment')
查询操作
<?php $url = new \Purl\Url('http://jwage.com'); $url->query->set('param1', 'value1'); $url->query->set('param2', 'value2'); echo $url->query; // param1=value1¶m2=value2 echo $url; // http://jwage.com?param1=value1¶m2=value2 // set the query data from an array $url->query->setData(array( 'param1' => 'value1', 'param2' => 'value2' )); // set the query data from a string $url->query = 'param1=value1¶m2=value2'; // $url->query becomes instanceof Purl\Query print_r($url->query->getData()); //array('param1' => 'value1', 'param2' => 'value2')
片段操作
<?php $url = new \Purl\Url('http://jwage.com'); $url->fragment 'about/me?param1=value1¶m2=value2'; // $url->fragment becomes instanceof Purl\Fragment
片段由路径和查询组成,位于哈希标记 (#) 之后。
<?php echo $url->fragment->path; // about/me echo $url->fragment->query; // param1=value1¶m2=value2 echo $url; // http://jwage.com#about/me?param1=value1¶m2=value2
域名部分
Purl 可以将 URL 解析为部分和其规范形式。它使用来自 http://publicsuffix.org 的域名列表将域名分解为其公共后缀、可注册域名、子域名和规范形式。
<?php $url = new \Purl\Url('http://about.jwage.com'); echo $url->publicSuffix; // com echo $url->registerableDomain; // jwage.com echo $url->subdomain; // about echo $url->canonical; // com.jwage.about/
保持最新
用于将 URL 解析为其组件部分的域名列表会不时更新。为确保您拥有最新的公共后缀列表副本,您可以运行 ./vendor/bin/pdp-psl data
来刷新列表的本地副本。
提取 URL
您可以使用 extract
方法轻松地从文本字符串中提取 URL
<?php $string = 'some text http://google.com http://jwage.com'; $urls = \Purl\Url::extract($string); echo $urls[0]; // http://google.com/ echo $urls[1]; // http://jwage.com/
连接 URL
您可以使用 Purl 轻松地将两个 URL 连接在一起
<?php $url = new \Purl\Url('http://jwage.com/about?param=value#fragment'); $url->join('http://about.me/jwage'); echo $url; // http://about.me/jwage?param=value#fragment
或者如果您已经有另一个 Url
对象
<?php $url1 = new \Purl\Url('http://jwage.com/about?param=value#fragment'); $url2 = new \Purl\Url('http://about.me/jwage'); $url1->join($url2); echo $url1; // http://about.me/jwage?param=value#fragment