jwage/purl

PHP 5.3 的 URL 操作

维护者

详细信息

github.com/jwage/purl

主页

源代码

问题

安装次数: 1,051,015

依赖: 22

建议者: 1

安全: 0

星星: 907

关注者: 36

分支: 125

公开问题: 7

v1.0.0 2019-04-11 18:45 UTC

This package is auto-updated.

Last update: 2024-09-13 09:44:04 UTC


README

Purl 是一个简单的面向对象 PHP 7.2+ URL 操作库

Build Status Scrutinizer Quality Score Code Coverage Latest Stable Version Total Downloads

安装

建议的安装方法是使用 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&param2=value2')
    ->set('fragment', 'about/me?param1=value1&param2=value2');

echo $url->getUrl(); // https://jwage:password@jwage.com:443/about/me?param1=value1&param2=value2#about/me?param1=value1&param2=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&param2=value2
echo $url; // http://jwage.com?param1=value1&param2=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&param2=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&param2=value2'; // $url->fragment becomes instanceof Purl\Fragment

片段由路径和查询组成,位于哈希标记 (#) 之后。

echo $url->fragment->path; // about/me
echo $url->fragment->query; // param1=value1&param2=value2
echo $url; // http://jwage.com#about/me?param1=value1&param2=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