phpmask/purl
为PHP 5.3提供URL操作
v1.0.0
2023-06-15 06:15 UTC
Requires
- php: ^7.2
Requires (Dev)
- doctrine/coding-standard: ^6.0
- phpstan/phpstan: ^0.11.5
- phpstan/phpstan-strict-rules: ^0.11.0
- phpunit/phpunit: ^8.1
This package is auto-updated.
Last update: 2024-09-15 09:21:18 UTC
README
Purl是一个简单的面向对象URL操作库,适用于PHP 7.2及以上版本。
安装
建议的安装方法是通过composer
composer require jwage/purl
使用Purl
创建Url实例很简单。您可以指定所需的URL,或者直接使用当前URL
use Purl\Url; $url = new Url('http://jwage.com'); $currentUrl = Url::fromCurrent();
创建Url
后,您可以像这样链接方法
$url = (new Url('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
路径操作
$url = new 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')
查询操作
$url = new 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([ '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')
片段操作
$url = new Url('http://jwage.com'); $url->fragment = 'about/me?param1=value1¶m2=value2'; // $url->fragment becomes instanceof Purl\Fragment
片段由路径和查询组成,位于哈希标记(#)之后。
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
提取URL
您可以使用extract
方法轻松地从文本字符串中提取URL
$string = 'some text http://google.com http://jwage.com'; $urls = Url::extract($string); echo $urls[0]; // http://google.com/ echo $urls[1]; // http://jwage.com/
连接URL
您可以使用Purl轻松地将两个URL连接在一起
$url = new Url('http://jwage.com/about?param=value#fragment'); $url->join('http://about.me/jwage'); echo $url; // http://about.me/jwage?param=value#fragment
或者如果您已经有了另一个Url
对象
$url1 = new Url('http://jwage.com/about?param=value#fragment'); $url2 = new Url('http://about.me/jwage'); $url1->join($url2); echo $url1; // http://about.me/jwage?param=value#fragment